是否可以使用wicket框架从后端多次添加javascript库而不刷新页面?



我想在我的页面中添加一个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+"')");
}

其中param1param2只是一个演示,说明如何将任何参数传递给每次点击链接计算的函数。

最新更新