2013-05-14 44 views
15

Tôi đã thiết lập một bộ sưu tập cho Nhật ký. Api trả về kết quả dưới dạng JSON. Tôi đã thấy một chủ đề trước đó, nơi nó được đề xuất để thêm phương thức phân tích cú pháp vào bộ sưu tập. Có làm như vậy, khi tôi thực thi mã tôi không nhận được bất kỳ đầu ra cho giao diện điều khiển. Tuy nhiên, tôi mới làm quen với Backbone nên mọi thông tin chi tiết và/hoặc hướng dẫn sẽ được đánh giá cao. Sự hiểu biết của tôi về collection.each có thể không chính xác.backbone.js lặp lại một bộ sưu tập

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

Trả lời

25

Tìm nạp không đồng bộ. Viết lại mã của bạn để gọi lại bằng gọi lại:

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

Bạn sẽ sửa đổi để sử dụng MarionetteJS .. – Merlin

Các vấn đề liên quan