如何检查主干中几个属性的变化



我有一个模型user,它有两个属性:name和姓氏。我想更新它,所以我显示了一个预先填写的表单,其中已经填写了姓名。之后,我需要用代码保存更新模型,但在此之前,我必须检查模型是否更改:

this.model.set("name", formData.name);
this.model.set("surname", formData.surname);
if (this.model.hasChanged()) {
    this.model.save();
}

考虑在from中只更改名称的情况:

this.model.set("name", formData.name);
//this.model.hasChanged() -> true
this.model.set("surname", formData.surname);
//this.model.hasChanged() -> false
if (this.model.hasChanged()) {
    //so model do not changes at all :(
}

是否有一种方法来检查所有的模型属性改变?(不是一个接一个)

我建议改变您设置模型属性的方式,而不是一次设置它们。这将允许change事件仅在任何属性在模型集操作期间更改时触发一次。

this.model.set({
    name: formData.name,
    surname: formData.surname
});
if (this.model.hasChanged()) {
    // executes this code...
}

之后,我需要保存更新模型与代码,但在此之前,我必须检查模型是否更改:

为什么要显式检查model是否被修改?可以直接在model上绑定change事件,然后保存。在这种情况下,当且仅当model (model中的任何属性)被更改时,它将触发change事件。

Try this:

this.model.on('change', function () {
    this.model.save();
}, this);

看一下模型。设置和事件

最新更新