我已经为Logs设置了一个集合。 api将结果返回为JSON。我看到了上一个主题,建议在集合中添加解析方法。这样做,当我执行代码时,我没有得到任何输出到控制台。尽管如此,我是Backbone的新手,因此任何见解和/或指导都将受到赞赏。我对collection的理解可能不正确。
var Log = Backbone.Model.extend({});
var LogList = Backbone.Collection.extend({
model: Log,
url: 'api/logs',
parse: function(response) {
return response.logs;
}
});
var LogListView = Backbone.View.extend({
el: $('#logs-list'),
initialize: function() {
this.collection = new LogList();
this.collection.fetch();
this.render();
},
render: function() {
this.collection.each(function(log) {
console.log('log item.', log);
});
}
});
$(document).ready(function(){
console.log('ready.');
new LogListView();
});
答案 0 :(得分:26)
Fetch是异步的。重写代码以使用回调函数调用render:
var LogListView = Backbone.View.extend({
el: $('#logs-list'),
initialize: function() {
var self = this;
this.collection = new LogList();
this.collection.fetch().done(function(){
self.render();
});
},
render: function() {
this.collection.each(function(log) {
console.log('log item.', log);
});
}
});