0
我是Backbone.js的新手,並且在收集視圖中遇到了一些麻煩。 這裏就是我想要做的事:Backbone Collection查看每個
var customersCollection = new _App.Collections.Customers();
var customersView = new _App.Views.Customers({collection: customersCollection});
customersView.render();
而且這裏有一個觀點 - 我不明白爲什麼我不能遍歷集合:
_App.Views.Customers = Backbone.View.extend({
render: function() {
console.log('Here is my collection');
console.log(this.collection);
console.log('Now lets iterate over it...');
_.each(this.collection, function(item) {
console.log(item);
}, this);
console.log('...done');
return this;
}
});
我在Chrome控制檯中看到什麼:
Here is my collection
child {length: 0, models: Array[0], _byId: Object, constructor: function, url: "/admin/customers/latest.json"…}
_byId: Object
length: 5
models: Array[5]
__proto__: Surrogate
Now lets iterate over it...
...done
所以我不明白爲什麼我可以看到一個集合,但不能每一個它。 感謝
//解決
我發現爲什麼這會發生。 完全錯過.fetch()是異步的,因此調用render()時,數據仍然不存在於集合中。 此代碼對我的作品了,所以我可以你不使用_.each
適當地去與模板等
_App.Views.Customers = Backbone.View.extend({
initialize: function() {
this.collection = new _App.Collections.Customers();
this.collection.on('sync', this.render, this);
this.collection.fetch();
},
render: function() {
this.collection.each(function(item) {
console.log(item);
});
return this;
}
});
new _App.Views.Customers();
問候,尼古拉
試圖this.collection.each(函數(項目){的console.log(項目);});但結果是完全一樣的 - 注意到將在console.log()裏面的迭代函數 –
您的集合中是否有任何模型? – fbynite