Wicket - 每次组件 ajax 刷新时执行 javascript
Wicket - execute javascript each time a component is ajax-refreshed
我想 运行 一小段 javascript 代码用于列表的每个组件。现在我在附加到每个组件的行为的 onRenderHead()
回调中输出代码:
public class MyBehavior extends Behavior {
@Override
public void renderHead(Component component, IHeaderResponse response) {
response.render(OnDomReadyHeaderItem.forScript(
String.format("my_js_callback('%s')", component.getMarkupId())));
}
}
这很好用。
但是现在我ajax-刷新组件列表(可能在列表中添加或删除组件)。如何确保在 ajax-refresh 之后为每个组件调用行为 javascript 代码? "wicket way" 这样做很简单吗?或者我应该在途中调用一些传递 AjaxRequestTarget
上下文的手工方法吗?
我建议在列表级别移动 javascript 代码。列表本身可以为它拥有的每个组件执行所需的 javascript。您应该使用附加到列表的 AjaxCallListener 解决 AJAX 刷新问题。使用此 class 可以指定在 ajax 请求完成时执行的 js 代码。可以找到更多详细信息 here。
其实很简单:OnDomReadyHeaderItem.forScript()
安装的javascript代码在ajax刷新后被调用也。我最初的问题是无关紧要的:没有必要让它工作。
(Wicket 真的很棒。)
我想 运行 一小段 javascript 代码用于列表的每个组件。现在我在附加到每个组件的行为的 onRenderHead()
回调中输出代码:
public class MyBehavior extends Behavior {
@Override
public void renderHead(Component component, IHeaderResponse response) {
response.render(OnDomReadyHeaderItem.forScript(
String.format("my_js_callback('%s')", component.getMarkupId())));
}
}
这很好用。
但是现在我ajax-刷新组件列表(可能在列表中添加或删除组件)。如何确保在 ajax-refresh 之后为每个组件调用行为 javascript 代码? "wicket way" 这样做很简单吗?或者我应该在途中调用一些传递 AjaxRequestTarget
上下文的手工方法吗?
我建议在列表级别移动 javascript 代码。列表本身可以为它拥有的每个组件执行所需的 javascript。您应该使用附加到列表的 AjaxCallListener 解决 AJAX 刷新问题。使用此 class 可以指定在 ajax 请求完成时执行的 js 代码。可以找到更多详细信息 here。
其实很简单:OnDomReadyHeaderItem.forScript()
安装的javascript代码在ajax刷新后被调用也。我最初的问题是无关紧要的:没有必要让它工作。
(Wicket 真的很棒。)