从Backbone Collection过滤模型,然后为这些模型设置属性

时间:2012-08-28 21:33:02

标签: javascript backbone.js coffeescript underscore.js

this.model.collection.where({selected: true})返回一组模型

然后我想将返回模型的selected属性设置为false。

我该怎么做?

@model.collection.where({selected: true})(coffeescript)

3 个答案:

答案 0 :(得分:1)

您可以使用.each

执行此操作
_.each(this.model.collection.where({selected: true}), function(m){
    m.set('selected', false);
});

where returns an array of matching objects开始,您必须将该数组传递给下划线each的第一个参数。

您也可以使用map执行此操作:

this.model.collection.map(function(m){if(m.get('selected'){m.set('selected', false);}});

由于map获取集合(或数组)中的每个元素并将方法应用于它们。

答案 1 :(得分:1)

简单循环有什么问题?

m.set('selected', false) for m in @model.collection.where(selected: true)

甚至:

for m in @model.collection.where(selected: true)
    m.set('selected', false)

下划线很不错,但这并不意味着你必须将它用于所有事情。

答案 2 :(得分:-1)

this.model.collection.where({selected: true}).each(function(model){
    model.set({selected:false});
}