2013-05-14 25 views
15

Günlükler için bir koleksiyon hazırladım. API, sonuçları JSON olarak döndürür. Koleksiyonda ayrıştırma yöntemini eklemenin önerildiği önceki bir konu gördüm. Bunu yaptıktan sonra, kodu çalıştırdığımda konsola herhangi bir çıkış alamıyorum. Yine de, omurgada yeniyim, bu yüzden herhangi bir içgörü ve/veya rehberlik takdir edilecektir. Collection.each hakkındaki bilgilerim doğru olmayabilir.backbone.js koleksiyonunu yineleyin

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

cevap

25

Eşleme zamanuyumsuzdur. Geri arama ile kodlamak için kodunuzu yeniden yazın:

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'yi nasıl kullanırsınız .. – Merlin