我有一个组件,其中包含一个带有许多 TextField 的表单。它应该工作的方式是,当更改时,应该立即保留该值(没有保存按钮,全部通过 AJAX)。
AJAX 调用工作正常,值到达模型。
保存模型(和包含的实体)的代码在父组件中。我以为我会覆盖 onModelChanged() 以将更改从组件传播到父级。但是 onModelChanged() 没有被调用。
Parent 有自己的模型作为类成员字段。子组件使用这个:
ReleaseTraitRowPanel( String id, IModel<IHasTraits> relModel, ... ) {
...
PropertyModel<String> traitModel = new PropertyModel( relModel.getObject().getTraits(), prop);
EditableLink4 link = new EditableLink4("link", traitModel){
// Pass the change notification to upper level. TODO: Does Wicket do this automatically?
@Override protected void onModelChanged() {
ReleaseTraitRowPanel.this.onModelChanged();
}
};
...
}
应该怎么做?我应该通过 onModelChanged() 吗?或者检票口是否有某种方式来通知其他模型的变化?
相关 - CompoundPropertyModel 仅适用于表单,还是我可以将它与任何组件一起使用?我可以在这里使用它 -prop
与 id 相同。