javascript - Backbone.js "on change"事件未正确触发

标签 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"; 感谢任何帮助!谢谢

最佳答案

这样是行不通的。

您可以使用纯 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" });

关于javascript - Backbone.js "on change"事件未正确触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24060716/

相关文章:

javascript - 日期时间 javascript jquery 的 slider 。需要建议

javascript - 在 iPhone 网络应用程序中播放声音

events - 用于附加/分离的 Laravel 模型事件

javascript - 如何显示js警报弹出框,其中特定单词作为点击链接?

javascript - Knockout.js:根据比较的属性确定可见性

javascript - 当所有异步处理程序完成时执行 javascript 函数

javascript - 动态创建的元素上的事件绑定(bind)?

javascript - 主干排序和更新一个 Action 后的 ListView

javascript - 如何在执行下一行代码之前等待 Backbone 事件触发完成

javascript - 从 backbone.js 集合中删除每个模型