2013-05-14 19 views
15

私はログ用のコレクションを設定しました。 APIは結果をJSONとして返します。以前のトピックで、コレクションの解析メソッドを追加することを提案しました。そのようにして、コードを実行するとコンソールに何も出力されません。それにもかかわらず、私はBackboneを初めて熟知しているので、洞察力やガイダンスは高く評価されます。コレクションの私の理解は正しくないかもしれません。backbone.jsコレクションを繰り返す

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(); 
}); 

答えて

25

フェッチは非同期です。コールバックを使用してレンダリングを呼び出すコードを書き直してください。

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); 
    }); 
} 
}); 
+0

MarionetteJSを使用するにはどうしたらいいですか? – Merlin

関連する問題