我的collection.fetch不起作用,也没有得到要渲染的模型。 我在router.js上有这个。
itemcollection = new ItemCollection();
itemcollection.fetch();
ItemListView.render();
CartListView.render();
}
我的itemcollection.js
define([
'underscore',
'backbone',
'model/item_model'
],function(_, Backbone, Item){
var ItemCollection = Backbone.Collection.extend({
model: Item,
url: 'http://posbeta.interprisesolutions.com/POSMobileConnector/Product/loaditembycategory/Event Materials',
parse: function(response) {
return response.Items;
}
});
return ItemCollection;
});
我的观点:
initialize: function(){
ItemCollection.bind("reset", this.render );
},
render: function(){
var data = {
items: itemcollection.models
}
var compiledTemplate = _.template( ItemListTemplate , data);
$("#itemContainer").html( compiledTemplate );
},
有趣的是,当我使用firebug调试它时,当我删除它没有显示任何东西的断点时它正确呈现。任何想法?
答案 0 :(得分:3)
请记住fetch
是异步的 - 它会在数据加载之前立即返回。
您可以尝试以下方式:
itemcollection = new ItemCollection();
itemcollection.fetch({
success: function () {
ItemListView.render();
CartListView.render();
}
});
或者,您可以收听该集合的reset
事件。
答案 1 :(得分:0)
网址中有一个空格:
... /活动资料',
尝试删除它或使用%20