当我更改Model Backbone.Marionette时,获取字段的名称

Get name of the field when i change Model Backbone.Marionette

本文关键字:获取 字段 Marionette Model Backbone      更新时间:2023-09-26

我有一个函数,每次通过modelEvents 进行模型更改时都会调用它

myFunc(value) {
    var fieldName = ??;
    if(!value)
       this.model.unset(fieldName)
    }
}

fieldName应该是我更改的字段的名称吗?我真的不知道如何得到它。当模型改变时,我不想要一个硬编码的

var changedAttribute = _.keys(this.model.changedAttributes())[0]; console.log( changedAttribute);
将返回从上次设置更改的属性列表。

文档链接

您可以使用_.keys+changedAttributes

myModel.on('change', function() {
    myFunc(_.keys(this.changedAttributes())[0]); 
})

modelEvents的情况下,可用作以下

modelEvents: {
    "change": function(){
        myFunc(_.keys(this.changedAttributes())[0]); 
    }
}

modelEvents: {
    "change": "onAnyModelChange"
},
onAnyModelChange: function() {
    myFunc(_.keys(this.changedAttributes())[0]); 
}

http://jsfiddle.net/smvtbkn1/1/