我的模型中有相当多的属性,在某些情况下,除了2或3之外,还需要清除所有属性。这是否需要遍历所有属性?暂时存储这2-3个属性,清除模型,然后将它们添加回?还是有更简单的方法来完成这件事?
谢谢!
发布于 2014-03-13 21:11:24
懒惰的方法是使用clear()函数并重新添加特定的值。
如果您有(或将来可能有)列在更改上的事件,则不必要地触发这些事件。
看一看清楚的功能:
clear: function(options) {
var attrs = {};
for (var key in this.attributes) attrs[key] = void 0;
return this.set(attrs, _.extend({}, options, {unset: true}));
},
要使它适应自定义的clear()函数并不难:
var myModel = Backbone.Model.extend({
// You may also override the Backbone clear function
partialClear: function(options, keep) {
var attrs = {};
for (var key in this.attributes)
if (!_.contains(keep, key)) attrs[key] = void 0;
return this.set(attrs, _.extend({}, options, {unset: true}));
},
});
然后使用要保留的值数组运行partialClear:
this.partialClear({}, ['id', 'a', 'b']);
https://stackoverflow.com/questions/22389526
复制相似问题