我有一個骨架集合,我試圖在視圖中渲染。 JSON數據似乎是正確的,但是我無法訪問視圖內的值。Backbone.js渲染集合在視圖中
下面是基本集合:
define(['backbone', 'BaseModel'], function(Backbone, BaseModel) {
var BaseCollection = Backbone.Collection.extend({
model: BaseModel,
url: "/collection/get?json=true",
initialize: function() {}
});
return BaseCollection;
});
這裏的景觀:
define(['backbone', 'BaseCollection'], function(Backbone, BaseCollection) {
var BaseView = Backbone.View.extend({
el: $('#baseContainer'),
template: _.template($('#baseTemplate').html()),
initialize: function() {
_.bindAll(this);
this.collection = new BaseCollection();
this.collection.bind('all', this.render, this);
this.collection.fetch();
},
render: function() {
//This returns 3 objects which is correct based on the JSON data being returned from the server
console.log(this.collection.toJSON());
var html = this.template(this.collection.toJSON());
this.$el.html(html);
return this;
},
});
return BaseView;
});
我想我需要通過this.render
爲集合中的每個模型進行迭代。但是,我不確定,因爲它不應該「渲染」,直到它完成所有迭代。
任何建議將是偉大的!謝謝!
你能告訴我們你的模板嗎?我的猜測是你需要修改你傳遞給'this.template()'的參數,或者修改模板本身。您可以在模板中使用'collection.each'來遍歷集合中的所有模型(但是,如果您將綁定大量特定於模型的事件,建議爲每個模型創建子視圖) – jackwanders