#java #javascript #d3.js #wicket
#java #javascript #d3.js #wicket
Вопрос:
У меня есть два файла сценариев lib_network.js и network.js. У меня есть функция draw() в network .js, которая вызывает другую функцию в lib_network.js. Оба файла используют d3.js функции выполняют определенную задачу.
Я добавляю оба файла следующим образом на панель wicket
public static final JavaScriptResourceReference NETWORK_JS = new JavaScriptResourceReference(
SenseAlign.class, "network.js");
public static final JavaScriptResourceReference NETWORK_CSS = new JavaScriptResourceReference(
SenseAlign.class, "network.css");
public NetworkPanel(String id){
super(id);
}
@Override
public void renderHead(IHeaderResponse aResponse){
super.renderHead(aResponse);
aResponse.render(JavaScriptReferenceHeaderItem.forReference(D3Reference.D3_JS));
aResponse.render(JavaScriptReferenceHeaderItem.forReference(JqueryReference.jQuery_JS));
aResponse.render(JavaScriptReferenceHeaderItem.forReference(NetworkLibrary.LIB_NETWORK_JS));
aResponse.render(JavaScriptReferenceHeaderItem.forReference(NETWORK_JS));
aResponse.render(JavaScriptReferenceHeaderItem.forReference(NETWORK_CSS));
String[] annotatorScript = new String[] {
"draw("" getMarkupId() "")"};
aResponse.render(OnDomReadyHeaderItem.forScript(StringUtils.join(annotatorScript, "n")));
}
Я получаю сообщение об ошибке при попытке вызвать функцию в lib_network.js как
Неперехваченная ошибка типа: undefined не является функцией
Также файл css не загружен должным образом. Получаю синтаксическую ошибку, но синтаксис правильный, поскольку я добавил в файл только два класса.
Может ли кто-нибудь подсказать мне правильный способ включения ресурсов.
Я пытался найти ответ в cwiki и руководстве по wicket. Они говорят, что вышеупомянутый способ, но он все еще не работает для меня.
Комментарии:
1. кто бы ни проголосовал против этого, не могли бы вы, пожалуйста, сообщить мне причину
2. Поддержано, поскольку это хороший вопрос
Ответ №1:
new JavaScriptResourceReference(SenseAlign.class, "network.css")
Не следует использовать ссылку JavaScriptResourceReference для файла CSS, иначе он будет сжат с помощью компрессора Javascript. Вместо этого используйте CssResourceReference.
Комментарии:
1. Спасибо! Я изменил ее на ресурс CSS, и она работает нормально. Но я все еще не могу вызвать функцию.