我有一个backbone.js
带有嵌套对象的模型,fieldData
如下图所示。
我知道我可以像这样删除整个属性:
this.unset('fieldData');
但是如何删除dataPartnerCodes
该属性中的单个对象(例如:-)。
主干是否为此提供任何工具?
我有一个backbone.js
带有嵌套对象的模型,fieldData
如下图所示。
我知道我可以像这样删除整个属性:
this.unset('fieldData');
但是如何删除dataPartnerCodes
该属性中的单个对象(例如:-)。
主干是否为此提供任何工具?
Backbone 本身没有这样的工具,但您可以创建一种方法来轻松使用模型。
var Model = Backbone.Model.extend({
// Remove by passed index
removeFieldDataAt : function (index) {
var fieldData = this.get('fieldData');
fieldData.splice(index, 1);
this.set('fieldData', fieldData);
}
});
var model = new Model({fieldData : [{id:1}, {id:2}, {id:3}]});
model.removeFieldDataAt(1);
console.log(model.toJSON()); // [{id:1}, {id:3}]
另一个例子:
var Model = Backbone.Model.extend({
removeFieldDataByCriteria : function (criteria) {
var fieldData = this.get('fieldData');
var fields = _.where(fieldData, criteria);
_.each(fields.reverse(), function (field) {
fieldData.splice(fieldData.indexOf(field), 1);
});
this.set('fieldData', fieldData);
}
});
var model = new Model({fieldData : [{id:1,visible:true}, {id:2,visible:false}, {id:3,visible:true}]});
model.removeFieldDataByCriteria({visible:true});
console.log(model.toJSON()); // [{id:2, visible:false}]