我在我的Backbone集合中使用方法where
,如下所示:
var quote = app.Collections.quotes.where({Id: parseInt(id, 10)});
然而,要访问唯一的结果/模型(因为它是ID,只有一个) - 我怎样才能获得实际模型而不诉诸于此:
var onlyModel = quote[0]
?
有更好的方法吗?
答案 0 :(得分:1)
更好的方法是在集合上使用get
。 http://backbonejs.org/#Collection-get
var quote = app.Collection.quotes.get(parseInt(id, 10));
答案 1 :(得分:1)
Backbone代理集合上的Underscore函数,特别是findWhere,它将返回找到的第一个匹配项。
findWhere _.findWhere(list,properties)
查看列表并返回与属性中列出的所有键值对匹配的第一个值。
您的查询可以写成
var quote = app.Collections.quotes.findWhere({Id: parseInt(id, 10)});
但是在你的情况下,如果你确实在寻找具有给定id的模型,你可以直接使用get方法
获取 collection.get(id)
从集合中获取模型,由id,cid或传入模型指定。
var quote = app.Collection.quotes.get(id);