Backbone.js“on change”事件未正确触发

时间:2014-06-05 12:50:53

标签: javascript events backbone.js triggers onchange

我正在尝试将一个简单的事件附加到一个对象,所以当一个属性被更改时,事件就会触发。我正在使用backbone.js来尝试实现这一目标。以下是我的代码。

var person = {
    name: "bob"
};

_.extend(person, Backbone.Events);

person.on("change:name", function () {
    alert("Triggered");
});

person.name = "fred";

如果我使用person.trigger("change:name");事件被触发,那么当我只使用person.name = "fred";时,我不确定为什么它不能正常工作任何帮助都表示赞赏!感谢

1 个答案:

答案 0 :(得分:1)

它不会那样工作。

您可以使用普通的javascript对象并在其上触发事件:

var person = {
    name: "bob"
};

_.extend(person, Backbone.Events);

person.on("change:name", function () {
    alert("Triggered");
});

person.name = "fred";
person.trigger("change:name");

或者您可以使用Backbone模型为您完成大部分工作:

var Person = Backbone.Model.extend({
    initialize: function(){
      this.on("change:name", function () {
        alert("Triggered");
      });
    }
});

var person = new Person({ name: "bob" });
person.set({ name: "john" });