首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我可以从模型中清除除某些属性之外的所有属性吗?

我可以从模型中清除除某些属性之外的所有属性吗?
EN

Stack Overflow用户
提问于 2014-03-13 19:56:19
回答 1查看 43关注 0票数 0

我的模型中有相当多的属性,在某些情况下,除了2或3之外,还需要清除所有属性。这是否需要遍历所有属性?暂时存储这2-3个属性,清除模型,然后将它们添加回?还是有更简单的方法来完成这件事?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-13 21:11:24

懒惰的方法是使用clear()函数并重新添加特定的值。

如果您有(或将来可能有)列在更改上的事件,则不必要地触发这些事件。

看一看清楚的功能:

代码语言:javascript
运行
复制
clear: function(options) {
  var attrs = {};
  for (var key in this.attributes) attrs[key] = void 0;
  return this.set(attrs, _.extend({}, options, {unset: true}));
},

要使它适应自定义的clear()函数并不难:

代码语言:javascript
运行
复制
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:

代码语言:javascript
运行
复制
this.partialClear({}, ['id', 'a', 'b']);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22389526

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档