gpt4 book ai didi

javascript - Wicket - 使用 AJAX 刷新组件 - 文档元素后的垃圾

转载 作者:行者123 更新时间:2023-11-28 18:42:04 25 4
gpt4 key购买 nike

我正在尝试使用 AJAX 刷新页面上的组件。这是一些代码:

    private class MyAjaxBehavior extends AbstractDefaultAjaxBehavior {
private final DataView<Something> dataView;

private MyAjaxBehavior(DataView<Something> dataView) {
this.dataView = dataView;
}

@Override
protected void respond(AjaxRequestTarget target) {
// here I do something with dataView...
MarkupContainer container = dataView.getParent();
dataView.setOutputMarkupId(true);
container.setOutputMarkupId(true);
dataView.renderComponent();
container.renderComponent();
target.addComponent(container);
}
}

我可以调用respond()使用javascript函数的方法wicketAjaxPost(<callback url>) 。但我的页面上没有任何变化。当我打开 javascript 控制台时,我看到以下错误:junk after document element 。当我重新加载页面时,我的更改是可见的,所以这只是关于 AJAX 的。我究竟做错了什么?我认为这是因为我的 HTML 无效;那么如何让用户的浏览器忽略验证错误呢?

我使用的是 Wicket 1.4.22。

最佳答案

不要调用#renderComponent(),当 wicket 将容器渲染到 ajax 响应中时,它会被 wicket 调用。

从 #respond() 调用 #setOutputMarkupId(true) 为时已晚,组件必须在第一个 Ajax 请求之前输出其 markupId。您可以从行为的#onConfigure() 中调用container#setOutputMarkupId(true)。

关于javascript - Wicket - 使用 AJAX 刷新组件 - 文档元素后的垃圾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35986643/

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