gpt4 book ai didi

javascript - 使用 AJAX 刷新的 Wicket 组件 "wicket:head"部分

转载 作者:行者123 更新时间:2023-12-04 16:47:40 30 4
gpt4 key购买 nike

我在使用 Wicket ListPanel 时遇到一些问题。整个 ListPanel 通过 Ajax 从同一页面上定义的过滤器进行刷新。这种模式在正常情况下工作得很好。

ListPanel 的一部分是一个组件,它需要一些特定的 JS 和 CSS 文件才能正常运行。这些在特定组件的 wicket:head 部分中声明。

当第一次加载页面并且列表至少有一个项目时,一切正常。但是,如果在呈现页面时列表为空,则永远不会加载 ListPanel 的子组件,并且不会考虑 CSS/JS 导入。如果之后您使用 AJAX 请求刷新 DIV,则不会重新加载该组件的 wicket:head 部分,因此 Javascript 代码已损坏。

我的假设是 Wicket 会在正常页面呈现期间考虑 wicket:head 部分,但不会在通过 AJAX 更新组件时考虑。

所以,我的问题是,获取所需资源的好方法是什么,而不必将导入推送到不直接使用资源的组件?我知道将它们推到其他组件或页面就可以完成这项工作,但我真的不认为它是干净的,我喜欢把东西放在它们所属的地方,如果一个组件是唯一使用某些资源的组件,它们应该只能在那里加载。

最佳答案

在你的列表面板中

@Override
public void renderHead(IHeaderResponse response) {
super.renderHead(response);
response.renderOnDomReadyJavaScript("someDomReadyJSFunction();");
}

你的 JS 应该有一个在 domready 上调用的函数,它将在 wicket 1.5.x 中完成工作对于 wicket 6 检查 this

关于javascript - 使用 AJAX 刷新的 Wicket 组件 "wicket:head"部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18185969/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com