X-Editable&骨干模型previousAttributes()

时间:2013-10-17 07:21:36

标签: javascript backbone.js x-editable

我拥有的内容:

我有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变量之前更改了一些模型属性,因此历史记录不应为空)

问题:

如何从验证方法访问模型历史记录?

2 个答案:

答案 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);