Backbone.js:如何通过模型ID数组过滤对象集合?

时间:2011-06-22 15:44:39

标签: javascript collections filter backbone.js underscore.js

我有Backbone.Collection个模型;我们说模型是Car。这个集合是一个很棒的Cars大列表。我希望能够从列表中选择一些特定的汽车ID,然后才能从这个集合中获得所选的汽车对象。

我的代码块不起作用;我确信有一种方法可以使用Backbone.js / Underscore.js ...我对Backbone / Underscore也很新鲜。

CarList = Backbone.Collection.extend({
    model: Car,
    filterWithIds: function(ids) {
        return this.filter(function(aCar) { return _.contains(ids, car.id); }
    }
});

任何指针?

1 个答案:

答案 0 :(得分:12)

好的,我想我已经明白了。它接近我原来的代码块,但更新的filterWithIds函数就在这里。

filterWithIds: function(ids) {
    return _(this.models.filter(function(c) { return _.contains(ids, c.id); }));
}

对于那些跟随CoffeeScript(我)的人来说,这是CoffeeScript版本。

filterWithIds: (ids) -> _(@models.filter (c) -> _.contains ids, c.id)

这是我的答案;任何代码味道?

相关问题