【发布时间】:2018-11-05 10:45:13
【问题描述】:
我正在编写 wicket 项目中的代码,其中原始开发人员在 Ajax 请求处理方法中大量使用 onModelChanged() 方法。然而,我并不坚信这种实现方式。
事实上,我想不出任何例子,调用 target.add(...) 不如调用 onModelChanged 方法。
我在这里遗漏了一些关键概念吗?
例子:
public MyComponent extends Panel {
public MyComponent(String id, Component... componentsToRefresh) {
add(new AjaxLink<Void>("someId") {
@Override
public void onClick(AjaxRequestTarget target) {
// some logic with model change
for(Component c: componentsToRefresh) {
c.modelChanged();
}
target.add(componentsToRefresh);
}
};
}
}
现在,有几件事我不同意,第一个是 componentsToRefresh 参数,第二个是(正如问题所暗示的那样),我们在该数组中的所有组件上调用了 c.modelChanged() .我的猜测是它完全没有必要,而不是构造函数中的参数,应该只在MyComponent 中编写一个空函数并覆盖它,并在需要时将必要的组件放在那里。
【问题讨论】:
-
您能否详细介绍一下
onModelChanged()在此应用程序中是如何使用的?我不太明白与target.add(...)的关系。 -
编辑过的原始问题