0

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();
4

1 に答える 1

0

ユーザー名が変更されるとすぐに発生する「changeUsername」という名前のイベントをリッスンできます。ただし、モデルに複数のプロパティがあるとすぐに、プロパティごとに 1 つずつリスナーを追加する必要があります。その場合、バブリングが利益をもたらす深い構造がないため、バブルイベントはとにかくあまり意味がありません。

于 2013-02-27T06:51:18.847 に答える