Qooxdoo changeBubble在setModel之后没有被触发

时间:2013-02-26 19:19:33

标签: qooxdoo

在setModel之后不会触发changeBubble事件。在createModel(true)之后它可以工作。还有另一种方法可以知道表格上有什么变化吗?

var page = new qx.ui.mobile.page.NavigationPage();
page.setTitle("Login");
page.addListener("initialize", function() {
    var form = new qx.ui.mobile.form.Form();

    // User name
    var user = new qx.ui.mobile.form.TextField();
    user.setRequired(true);
    form.add(user, "Username");

    var controller = new qx.data.controller.Form(null, form);

    //var model = controller.createModel(true); This works

    var data = {
      "username": "Martin"
    };
    var model = qx.data.marshal.Json.createModel(data);
    controller.setModel(model);

    model.addListener("changeBubble", function (qxEvent) {
      alert("Changed username");
    }, this);

    // Use form renderer
    page.getContent().add(new qx.ui.mobile.form.renderer.Single(form));

},this);

this.getManager().addDetail(page);

page.show();

1 个答案:

答案 0 :(得分:0)

您可以收听名为“changeUsername”的事件,该事件将在用户名更改后立即触发。但是只要在模型中有更多属性,就必须添加更多侦听器,每个属性对应一个。在这种情况下,泡沫事件无论如何都没有多大意义,因为你没有任何深层结构,冒泡会带来任何好处。