我在从一个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