2014-03-30 65 views
0

我需要做一個簡單的檢查,看看模型是否已經存在。選擇*從哪裏backbone.js

在SQL中,我會返回結果集,並用temp變量交叉引用它。我如何做backbone.js中的等價物?

+0

你是說'如果(myCollectection.get( 'myModelId'))'? – Jack

+0

http://backbonejs.org/#Collection-fetch&http://backbonejs.org/#Collection-where –

+0

事情是這樣的:SELECT * FROM mytable的WHERE EMAILADDRESS = '[email protected]' – bobo2000

回答

1

有一個直接等效 - Collection#where方法:

返回所有集合中匹配 通過屬性,該模型的數組。

var friends = new Backbone.Collection([ 
    {name: "Athos",  job: "Musketeer"}, 
    {name: "Porthos", job: "Musketeer"}, 
    {name: "Aramis",  job: "Musketeer"}, 
    {name: "d'Artagnan", job: "Guard"}, 
]); 

var musketeers = friends.where({job: "Musketeer"}); 

alert(musketeers.length); // 3 

對於更復雜的查詢使用Collection#filter

var musketeersWhoseNameStartsWithA = friends.filter(function(item) { 
    return item.get('name').indexOf('A') === 0; 
}); 
+0

謝謝你,工作 - 我發現我只能得到模型,如果我把friends.where({job:「Musketeer」});在fetch子句中,問題是當我這樣做時,存儲結果的變量作用域被限制在fetch函數中。如果我嘗試退回musketeersWhoseNameStartWithA,它崩潰 – bobo2000

+0

請問您能展示一些更多的代碼嗎?我對你在這裏的意思有點困惑。 – raina77ow

+0

沒關係得到它的工作 - 當我這樣做musketeersWhoseNameStartsWithA.length它的工作原理,而不是直musketeersWhoseNameStartsWithA – bobo2000