简体   繁体   English

Backbone.js“更改时”事件无法正确触发

[英]Backbone.js “on change” event not firing correctly

I'm trying to attach a simple event to an object so when a property is changed the event fires. 我试图将一个简单事件附加到对象,以便在更改属性时触发该事件。 I'm using backbone.js to try and achieve this. 我正在使用ribs.js尝试实现这一目标。 Below is my code. 下面是我的代码。

var person = {
    name: "bob"
};

_.extend(person, Backbone.Events);

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

person.name = "fred";

If I use person.trigger("change:name"); 如果我使用person.trigger("change:name"); the event is triggered, so I'm not sure why its not workign when I simply use person.name = "fred"; 事件被触发了,所以我不确定为什么当我只使用person.name = "fred";时为什么它不起作用person.name = "fred"; Any help is appreciated! 任何帮助表示赞赏! Thanks 谢谢

It won't work that way. 这样就行不通了。

You can use a plain javascript object and trigger events on it : 您可以使用普通的javascript对象并在其上触发事件:

var person = {
    name: "bob"
};

_.extend(person, Backbone.Events);

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

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

Or you can use a Backbone model that does most of this for you: 或者,您可以使用可以为您完成大部分工作的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" });

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM