我正在尝试将一个简单的事件附加到一个对象,所以当一个属性被更改时,事件就会触发。我正在使用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";
时,我不确定为什么它不能正常工作任何帮助都表示赞赏!感谢
答案 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" });