2014-03-13 34 views
0

我的模型中有很多屬性,在某些情況下需要清除除2或3以外的所有屬性。這是否需要遍歷所有屬性?暫時存儲2-3個屬性,清除模型,然後將它們添加回來?或者有更簡單的方法來解決這個問題嗎?我可以清除模型中的所有特定屬性嗎?

謝謝!

回答

0

懶惰的方法是使用clear()函數並重新添加特定的值。

如果您有(或可能在將來)列出有關更改的事件,則不必要地解除事件。

看看清澈的功能:

clear: function(options) { 
    var attrs = {}; 
    for (var key in this.attributes) attrs[key] = void 0; 
    return this.set(attrs, _.extend({}, options, {unset: true})); 
}, 

它並不難,這種適應自定義明確的()函數:

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']); 
+0

工程就像一個魅力。謝謝! –

相關問題