1

标题说明了一切。

我有这个剑道可观察的例子,这样当名字被更改时,姓氏将被更改以匹配它。但是,如果您在 javascript 中更改名称,则该示例不起作用(请参阅单击注册按钮的代码)。

谢谢你的帮助。!!

4

2 回答 2

1

如果 firstname 从代码中更改,则不会触发 firstNameChangeEvent。更好的方法:

viewModel.bind("change", function(e) {
    if(e.field == "firstName") {
      this.set("lastName", this.get("firstName"));  
    }
});
于 2015-10-25T22:03:46.380 回答
0

发现模型更改事件应该为您解决问题

$(document).ready(function() {
    var viewModel = kendo.observable({
        firstName: "John",
        lastName: "Doe",
        genders: ["Male", "Female"],
        gender: "Male",
        agreed: false,
        confirmed: false,
        register: function(e) {
            this.set("firstName", "bobbyyyyy!!!");
            e.preventDefault();

            this.set("confirmed", true);
        },
        startOver: function() {
            this.set("confirmed", false);
            this.set("agreed", false);
            this.set("gender", "Male");
            this.set("firstName", "John");
            this.set("lastName", "Doe");
        },

      firstNameChangeEvent:function(e) {

        switch(e.field){
          case "firstName":
            this.set("lastName", this.get("firstName"));                 
            break;
        }
      }
    });

    viewModel.bind("change", viewModel.firstNameChangeEvent);

    kendo.bind($("#example"), viewModel);
});
于 2015-10-23T00:08:47.203 回答