我想在我的页面中添加一个javascript库,每次当我们点击AjaxLink在apache wicket不刷新页面。是否有可能在不刷新页面的情况下添加Javascript库并在每次函数调用时触发该库?
//Here , MetaModelPagePanel trigger and add a javascript file and create a graph using this
RepeatingView graphTesting1= new RepeatingView("graphTesting");
MetaModelPagePanel graphTesting = new MetaModelPagePanel(graphTesting1.newChildId(), getRepositoryKey());
graphTesting1.add(graphTesting.setVisible(false));
OverViewpanel.add(graphTesting1);
AjaxLink onClickGraph_Container = new AjaxLink<>("onClickGraph_Test") {
@Override
public void onClick(AjaxRequestTarget target) {
MetaModelPagePanel graphTesting = new MetaModelPagePanel(graphTesting1.newChildId(), getRepositoryKey());
graphTesting1.add(graphTesting);
OverViewpanel.add(graphTesting1.setVisible(true));
}
};
我建议您只包含一次库,并根据需要多次调用它。
要包含该库,只需将其添加为所使用的任何组件的依赖项:
@Override
public void renderHead(Component component, IHeaderResponse response) {
response.render(JavaScriptHeaderItem.forReference(MyPanel.class, "my-library.js"));
}
在AjaxLink#onClick()中调用它:
@Override
public void onClick(AjaxRequestTarget target) {
...
target.appendJavaScript("myLibrary.doSomething('"+param1+"', '"+param2+"')");
}
其中param1
和param2
只是一个演示,说明如何将任何参数传递给每次点击链接计算的函数。