我正在使用 zk 框架 mvvm 方法来添加、编辑对象。当我第一次单击添加按钮时,打开表单为空并且运行顺利。从列表中编辑记录后,我得到了预先选择的组合框值,并且不能选择已经选择的值,否则,我得到 null 并且我无法提交表单。这意味着我不能再次为成功的 crud 操作选择选定的值。我对每种情况的编辑功能都工作正常,没有问题,所有文本框和 intbox 都正常工作
我正在关注这篇文章 http://books.zkoss.org/wiki/Small_Talks/2012/February/MVVM_in_ZK6:_Form_Binding
我有三个对象,newObject、selectedObject 和 editObject
我来自 zul 文件的表单片段
<grid sizedByContent="true"
form="@id('ds')
@load(vmc.newObject, after='addInvoke') @save(vmc.newObject, before='add')
@load(vmc.editObject, after='editInvoke') @save(vmc.editObject, before='edit')
@validator('com.example.MyValidator')"
>
<combobox model="@load(ds.unitList)"
selectedItem="@bind(ds.abc.unit)" readonly="true" maxlength="50"/>
我从 SampleViewModel 编辑和添加函数的方法片段如下
@Command("edit")
@NotifyChange({ "objectList", "selectedObject", "editObject" })
@Override
public void edit() {
service.editKpi(editObject);
editObject = null;
}
@Command("addInvoke")
@NotifyChange("newObject")
@Override
public void onClickAddButton(){
enableEditMode(false);
isNewMode = true;
newObject = new AbcDTO();
}