奇怪的是,我注意到模型之前的方法没有按照我想的那样工作。它一直返回与 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"))
我做错了什么?
最佳答案
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/