我拥有的内容:
我有x-editable popup,它应该在validate method
的帮助下检查输入参数$(".vacancy-edit-select-status").editable({
value: $this.model.get('value').id,
source: source,
validate: function(value) {
$this.model.previousAttributes(); //UNDEFINED!!!
//....
},
success: function (response, newValue) {
$this.model.set('value', newValue);
}
});
出了什么问题:
内部验证方法 previousAttributes()方法返回'undefined'。 (我在更改x-editable popup变量之前更改了一些模型属性,因此历史记录不应为空)
的问题: 的
如何从验证方法访问模型历史记录?
答案 0 :(得分:1)
previousAttributes
set
人口validate
之前拨打previousAttributes
期间{{1}}填充{{1}}
答案 1 :(得分:0)
答案很简单,也许我的问题不够明确:
Backbone克隆仅在更改事件 上建模状态 。
此外,当您将集合作为模型属性时,还有一些 细微差别与previousAttributes 。例如,要将属性更改写入历史记录 ,您必须重写整个属性 。我的意思是
this.model.get('myCommentsCollection').push('newComment'); //DOESN'T WRITE ANYTHING TO previousAttributes
所以要写一些东西到 model.previousAttributes 你应该这样做:
var comments = _.clone(this.model.get("comments"));
this.model.set('myCommentsCollection', comments);