我在從一個url填充Backbone集合後,模型消失了。如果我只是將數組傳遞到集合中,代碼將起作用。骨幹集合模型不可訪問
集合:
var CustomerList = Backbone.Collection.extend({
model: Customer,
url: "/customer_list/json"
});
的URL返回:
[
{
"id":"870000",
"name":"vitae odio",
"contact_name1":"ame",
"contact_number1":"345634565246",
"contact_name2":"",
"contact_number2":"",
"address_line1":"Ap #489-8375 Ornare, Ave2",
"address_line2":"",
"town":"Stillwater",
"county":"Herefordshire",
"postcode":"JV5H 2QH",
"email":"[email protected]",
"created_at":"0000-00-00 00:00:00",
"updated_at":"2012-08-18 16:44:36"
},
{
"id":"870001",
"name":"mauris, aliquam",
"contact_name1":"Quail",
"contact_number1":"82733186940",
"contact_name2":null,
"contact_number2":null,
"address_line1":"Ap #921-368 Cras Ave",
"address_line2":null,
"town":"Lake Charles",
"county":"Essex",
"postcode":"AP6 0KZ",
"email":"[email protected]",
"created_at":"0000-00-00 00:00:00",
"updated_at":"0000-00-00 00:00:00"
}
]
的視圖:
$(function() {
/* Customer View */
var CustomerView = Backbone.View.extend({
tagName: 'tr',
className: 'customer-row',
template: _.template($('#customerRowTemplate').html()),
render: function() {
this.$el.html(this.template(this.model.toJSON()));
return this.el;
}
});
/* Customer List View */
var CustomerListView = Backbone.View.extend({
el: $('#customers'),
initialize: function() {
this.collection = new CustomerList();
this.collection.bind('reset', this.render());
this.collection.fetch();
},
render: function() {
console.log(this.collection);
console.log(this.collection.models);
_.each(this.collection.models, function(customer) {
this.renderCustomer(customer);
}, this);
},
renderCustomer: function(customer) {
var customerView = new CustomerView({
model: customer
});
var html = customerView.render();
this.$el.find('#customer-list').append(html);
}
});
var customerList = new CustomerListView();
});
當調用的console.log(this.collection);它顯示模型數組長度爲366,我可以查看檢查器中的所有模型。
但是,當調用console.log(this.collection.models);它返回一個空數組。這意味着集合不會迭代,因此也不會呈現。再次,這工作正常,如果我只是手動通過客戶名單。
任何幫助將不勝感激。
你不應該把你的整個應用程序定義放在一個'$()'ready回調函數中......只是讓你的視圖實例化在那裏。 – Cobby