鑑於此集合 -如何獲得Backbone.Collection的子集?
{"education":
[
{
"school":{
"name":"Maxwell",
"type":"Secondary",
"teachers": [
{"name":"Mrs. Smith","subject":"Chemistry"},
{"name":"Mr. Jones","subject":"Calculus"}
]
}
},{
"school":{
"name":"Bright",
"type":"Elementry",
"teachers": [
{"name":"Mr. Anthony","subject":"Reading"},
{"name":"Mrs. Bates","subject":"Social Studies"}
]
}
}
]
}
我想回到學校的各個項目,這樣我可以顯示我的模板的名稱。
鑑於這種代碼 -
schools = [];
filtered = this.filter(function (item) {
return (
item.get('school') !== ''
)
});
_.each(filtered, function(k,v) {
_.each(k.attributes.models, function (k2, v2) {
schools.push(k2.get('school'));
});
});
colSchools = new Backbone.Collection(schools);
這能夠完成任務,但它似乎並不十分有效,還是真的正確的方式來做事。
我試圖在循環這個代替的過濾,我得到 k爲未定義錯誤。我想我的問題是兩部分 - 爲什麼會返回 K是未定義的,我錯過了關於抓取教育集合的子集?我覺得嵌套循環是多餘的工作,不需要開心。這可能是因爲我誤解了Backbone如何處理集合,或者這是實現我的目標的最佳方式嗎?
'this'指的是什麼?我沒有看到任何與「學校」相關的內容。 –
我應該在我的問題上更完整。這是指集合,因爲第二組代碼是我的backbone.collection.extend中函數的一部分。 – js1983