我有两个脚本文件lib_network.js和network.js。我在网络.js中有一个draw()函数,它调用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中的函数调用为
时,我收到错误未捕获的TypeError:undefined不是函数
此外,css文件未正确加载。获取语法错误但语法正确,因为我在文件中只添加了两个类。
任何人都可以告诉我包含资源的正确方法。
我试过在cwiki和wicket指南中寻找答案。他们说上面提到的方式,但它仍然不适合我。
答案 0 :(得分:0)
new JavaScriptResourceReference(SenseAlign.class, "network.css")
您不应将JavaScriptResourceReference用于CSS文件,否则将使用Javascript压缩器进行压缩。改为使用CssResourceReference。