我的模型数据的格式为 -
{
feature1: {
enabled: true,
default: false
},
feature2: {
enabled: true,
default: false
}
}
在我的代码中的某个地方,我将其设置为 this.model.get("feature1").enabled = false;
当数据格式如上时,如何检查模型是否更改了属性。
最佳答案
您只能将 Backbone 模型中的更改事件绑定(bind)到顶级属性。
这可以通过两种方式完成,要么将其设为可以完成的模型集合,要么使用深度模型插件,例如 https://github.com/kahwee/backbone-deep-model .
所以它会变成:
var model = new Backbone.DeepModel({
feature1: {
enabled: true,
default: false
},
feature2: {
enabled: true,
default: false
}
});
model.on('change:feature1.* change:feature2.*', function(model, val) {
console.log(val);
});
model.set({
'feature1.enabled': false
});
jsbin 示例 - https://jsbin.com/gatuyadoji/edit?js,console,output
关于javascript - 如何检查 Backbone 模型中的嵌套属性是否已更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35852931/