javascript - Backbone.js 模型以前的方法不起作用?

标签 javascript backbone.js

奇怪的是,我注意到模型之前的方法没有按照我想的那样工作。它一直返回与 get 相同的值。我认为我的代码有问题,或者 backbone.js 在触发更改事件时没有升级 this._previousAttributes。

model = new Backbone.Model()

model.set({attr1: 123})

alert(model.previous("attr1"))  //alert 123 instead of undefined
alert(model.get("attr1"))

model.set({attr1: 312})

alert(model.previous("attr1"))  //alert 321 instead of 123
alert(model.get("attr1"))

http://jsfiddle.net/wLKBk/

我做错了什么?

最佳答案

previous method仅在 "change" 事件发生时有用:

previous model.previous(attribute)

During a "change" event, this method can be used to get the previous value of a changed attribute.

previous 方法仅在 "change" 事件处理程序中有用;类似的事情适用于 hasChanged , changedAttributes , 和 previousAttributes .

当您不在事件处理程序中时,您试图使用 previous,所以您会胡说八道。如果您想知道模型中发生了什么变化并且您需要了解 “change” 事件处理程序之外的信息,那么您必须 track it yourself .

关于javascript - Backbone.js 模型以前的方法不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10662855/

相关文章:

javascript - Backbone.js 为什么 DOM 在渲染函数中不可用?

javascript - 如何使用Javascript获取当前窗口的 "menubar"属性?

javascript - 如何在 React 中传递事件处理函数?

javascript - 如何在不知道 div id 的情况下删除 div 的类?

javascript - 我希望进度条在查看时开始动画

javascript - 在消息传递模式架构下与事件一起传递的数据

javascript - 如果没有点击任何链接,则显示所有 div

jquery - 将 Backbone.js 与 jQuery UI 集成可选

jquery - Backbone.js、下划线.js : template images preloading

javascript - 如何根据主干模型的响应创建/更新主干 View ?