(ZK 7) 自动填充不绑定我的数据(MVVM 和作曲家)

Posted

技术标签:

【中文标题】(ZK 7) 自动填充不绑定我的数据(MVVM 和作曲家)【英文标题】:(ZK 7) Auto fill no binding my data (MVVM and composer) 【发布时间】:2015-04-17 14:47:17 【问题描述】:

我有一种带有自动填充铬的 zk 7 错误:(

自动填充填充我的网页(文本框)中的字段,但我的视图模型的字段使用 chrome 保持为空。

例如,使用自动填充的地址表单,我的视图模型中的所有数据都为空(不在网页上的文本框中)

如果我模拟一个事件“onChange”,我的绑定工作。

(zAu.send(new zk.Event(zk.Widget.$('$idOfMyTextBox'),"onChange",'value':'test!!','start':6)) )

一个mvvm页面的新zk项目也是同样的问题。

有人有解决办法吗?

感谢您的帮助:)

编辑:一个例子

我写下我的名字,并用 Chrome 自动填充其他字段。

Screen of form auto filled

结果是:

名称:鸽子 名字:空 地址:空 邮政编码:空 城市:空

祖尔

<zk xmlns="http://www.zkoss.org/2005/zul"
xmlns:h="http://www.w3.org/1999/xhtml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.zkoss.org/2005/zul http://www.zkoss.org/2005/zul/zul.xsd">

<window apply="org.zkoss.bind.BindComposer"
    viewModel="@id('vm') @init('com.enriquepigeon.TestZk.MyViewModel')">

    <label value="Name" />
    <textbox value="@bind(vm.nom)" />
    <h:br />

    <label value="First name" />
    <textbox value="@bind(vm.prenom)" />
    <h:br />

    <label value="Address" />
    <textbox value="@bind(vm.adresse)" />
    <h:br />

    <label value="Postal code" />
    <textbox value="@bind(vm.codePostal)" />
    <h:br />

    <label value="City" />
    <textbox value="@bind(vm.ville)" />
    <h:br />

    <button label="launch" onClick="@command('launch')" />

</window>

/zk>

我的视图模型

public class MyViewModel 

private String nom;
private String prenom;
private String ville;
private String adresse;
private String codePostal;

public String getNom() 
    return nom;


public void setNom(String nom) 
    this.nom = nom;


public String getPrenom() 
    return prenom;


public void setPrenom(String prenom) 
    this.prenom = prenom;


public String getVille() 
    return ville;


public void setVille(String ville) 
    this.ville = ville;


public String getAdresse() 
    return adresse;


public void setAdresse(String adresse) 
    this.adresse = adresse;


public String getCodePostal() 
    return codePostal;


public void setCodePostal(String codePostal) 
    this.codePostal = codePostal;


@Command
public void launch()
    System.out.println("Name : "+nom);
    System.out.println("First name : "+prenom);
    System.out.println("Address : "+adresse);
    System.out.println("Postal code : "+codePostal);
    System.out.println("City : "+ville);

可能是 zk.xml 上的配置,用于强制 zk 读取 dom?

【问题讨论】:

【参考方案1】:

将数据从表单保存到视图模型的最佳方法是将绑定与 zul 分开 名字文本框的示例:

&lt;textbox value="@load(vm.prenom) @save(vm.prenom, before='launch')" /&gt;

如果您对所有文本框都这样做,您将节省大量客户端/服务器通信,我认为它适用于您的情况

问候

【讨论】:

您好,感谢您的帮助。我试过你的解决方案,但结果是一样的:(

以上是关于(ZK 7) 自动填充不绑定我的数据(MVVM 和作曲家)的主要内容,如果未能解决你的问题,请参考以下文章

使用 MVVM 将数据填充到 UITableView

数据绑定库和MVVM

mvvm双向绑定机制的原理和代码实现

ObservableCollection刷新视图MVVM

WPF MVVM:组合框 SelectedValue 绑定

WPF随笔之 控件根据设定的显示行数列数填充控件并自适应窗体大小(多绑定MVVM方式实现)