【发布时间】:2011-09-20 12:35:22
【问题描述】:
我有一个充满模型的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); }
}
});
任何指针?
【问题讨论】:
-
传递给
this.filter的匿名函数缺少返回语句。与其他一些语言(例如 Ruby)不同,JavaScript 不使用函数中的最后一个表达式作为默认返回值。 (另外,将this分配给coll的行是多余的。) -
你说得对,Niall……我正在通过观察从 CoffeeScript 翻译我的代码,但我忽略了它;在简化我的代码时,我不小心留下了多余的行。我已经修复了我的代码示例。
标签: javascript collections filter backbone.js underscore.js