ログのコレクションを設定しました。 APIは結果をJSONとして返します。コレクションにparseメソッドを追加することが提案された以前のトピックを見ました。そうすることで、コードを実行してもコンソールに何も出力されません。それにもかかわらず、私はバックボーンに不慣れなので、洞察やガイダンスをいただければ幸いです。 collection.eachに対する私の理解は正しくないかもしれません。
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();
});
フェッチは非同期です。コールバックで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);
});
}
});