骨干js中的模型改变事件顺序

时间:2011-10-27 11:42:10

标签: javascript model-view-controller backbone.js

是否可以保证'change:property'事件在'更改'事件之前总是被激活? 这是一个例子:

MyModel = Backbone.Model.extend({
    property1: 'value1',
    property2: 'value2'
});

var myModel = new MyModel();
myModel.bind('change:property1', function () { alert("change pty1"); })
       .bind('change', function () { alert("change"); })
       .bind('change:property2', function () { alert("change pty2"); });

是否可以保证绑定到'change'的函数最后会被触发?

1 个答案:

答案 0 :(得分:5)

简答:是的

查看源代码,是individual:changes在循环中触发,然后,如果有任何更改,则会触发主change事件。如果您通过silent: true,这些都不会触发。

触发的各个更改事件的顺序取决于传递给.set()的属性的顺序。