奇怪的是我注意到模型上一个方法没有像我想象的那样工作..它不断返回与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"))
我做错了什么?
答案 0 :(得分:5)
previous
method仅在"change"
事件发生时有用:
上一页
model.previous(attribute)
在
"change"
事件期间,此方法可用于获取已更改属性的先前值。
previous
方法仅在"change"
事件处理程序中有用;类似的内容适用于hasChanged
,changedAttributes
和previousAttributes
。
当你不在事件处理程序中时,你试图使用previous
,所以你得到了废话。如果您想知道模型中的更改内容,并且您需要在"change"
事件处理程序之外了解,那么您必须track it yourself。