0

where在我的 Backbone 集合上使用该方法,如下所示:

var quote = app.Collections.quotes.where({Id: parseInt(id, 10)});

但是,要访问唯一的结果/模型(因为它是通过 ID,只有一个) - 我怎样才能获得实际的模型而不求助于使用它:

var onlyModel = quote[0]?

有没有更好的办法?

4

2 回答 2

1

一个更好的方法是get在集合上使用。http://backbonejs.org/#Collection-get

var quote = app.Collection.quotes.get(parseInt(id, 10));
于 2013-02-18T15:28:58.633 回答
1

骨干代理 集合上的下划线函数,特别是findWhere将返回找到的第一个匹配项。

findWhere _.findWhere(list, properties)
查看列表并返回与属性中列出的所有键值对匹配的第一个值。

您的查询可以写成

var quote = app.Collections.quotes.findWhere({Id: parseInt(id, 10)});

但是在您的情况下,如果您确实在寻找具有给定 id 的模型,则可以直接使用get方法

get collection.get(id)
从集合中获取模型,由 id、cid 或通过传入模型指定。

 var quote = app.Collection.quotes.get(id);
于 2013-02-18T15:32:47.233 回答