zk表单重置在MVVM中不起作用
我试图在zk中使用MVVM模型。 如果我在zk中使用form并尝试重置该值,它将不具有约束力zk表单重置在MVVM中不起作用,mvvm,zk,Mvvm,Zk,我试图在zk中使用MVVM模型。 如果我在zk中使用form并尝试重置该值,它将不具有约束力 <?page title="" contentType="text/html;charset=UTF-8"?> <zk> <window border="none" apply="org.zkoss.bind.BindComposer" viewModel="@id('ix') @init('com.Controller')
<?page title="" contentType="text/html;charset=UTF-8"?>
<zk>
<window border="none" apply="org.zkoss.bind.BindComposer"
viewModel="@id('ix') @init('com.Controller')"
form="@id('fx') @load(ix) @save(ix,before='add')" >
<textbox value="@bind(fx.title)"/>
<button onClick="@command('reverse', fx=fx, field='title')" label="Reverse"/>
</window>
</zk>
@Command
@NotifyChange("title")
public void reverse() {
String value = (String) fx.getField(fieldName);
String newValue = new StringBuilder(value).reverse().toString();
setTitle(newValue);
}
@命令
@通知更改(“标题”)
公共无效反向(){
字符串值=(字符串)fx.getField(字段名);
String newValue=新的StringBuilder(value).reverse().toString();
setTitle(newValue);
}
但是,如果我直接使用
而不使用表单,它会起作用。
我可以知道这个代码出了什么问题吗。我会告诉你出了什么问题
<button onClick="@command('reverse', fx=fx, field='title')" label="Reverse"/>
这里有您的命令方法,但没有您期望的参数。
由于Title可能是一个全局私有字符串,因此也不需要为其指定参数。
如果要提供参数,则应使用以下代码:
@Command
@NotifyChange("title")
public void reverse(@BindingParam("fx") Form fx, @BindingParam("title") String title) {
第二:
form="@id('fx') @load(ix) @save(ix,before='add')" >
不需要,您使用mvvm,因此您可以通过ix调用vm,这将成为您的绝对删除
您在这里所做的事情有时需要用于网格或列表,这些网格或列表不会通过@bind直接更新,而只能通过按下save按钮来更新这是因为@save的功能非常强大,它可以在不调用save方法的情况下更改DB中的值
@bind(ix.title)实际上与@load(ix.title)@save(ix.title)相同,但分组在一个单词中以备代码使用 希望这对你有帮助
form="@id('fx') @load(ix) @save(ix,before='add')" >