我对Backbone.js很新,在这里我试图设计一个在应用程序中使用的Model。以下是情况:
我有以下表格: 1)类别,产品,客户和订单。
每个类别都有一个或多个产品。
在主屏幕上,我选择显示所有类别,然后用户点击给定的类别,然后向他/她显示产品列表。
以下是我的尝试:
var Categories = Backbone.Collection.extend({
url : 'http://localhost:8090/OrderManagement/om/categories'
});
var Category = Backbone.Model.extend({
urlRoot : "http://localhost:8090/OrderManagement/om/categories"
});
var CategoryList = Backbone.View.extend({
tagName:'ul',
el : '.content',
render : function() {
var that = this;
var categories = new Categories();
categories.fetch({
success : function(categories) {
var template = _.template($('#category-list-template')
.html(), {
categories : categories.models
});
that.$el.html(template);
}
})
}
});
var CategoryView = Backbone.View.extend({
el:'.content',
render:function(options){
var that = this;
alert(options.id);
if(options.id){
that.category = new Category({id : options.id});
that.category.fetch({
success:function(category){
console.log(category.toJSON());
}
});
}
return false;
}
});
问题是在CategoryView中我得到了一个产品列表,不知道如何将它们映射到产品列表。请帮我一个可行的解决方案。
我想了解骨干模型是否可以在其中包含集合?
答案 0 :(得分:1)
我的代码存在问题,但通常如果您有一个包含集合所需的所有数据的数组,您可以简单地创建集合并使用它。另一方面,如果你有集合的id,你可以使用fetch来检索数据。这是一个让你有所了解的简单例子 https://gist.github.com/anonymous/5896152如果你有时间花在观看Nick Gauthier视频https://www.youtube.com/watch?v=PqtYcHyyWJA,那将是明智之举 还有两个建议:1渲染器通常会返回它以启用链接,这个成语。$ el.append(someView.render.el)非常常见,第二个为什么不在initialize方法中初始化数据而不是渲染,只是成功调用渲染。祝你好运Slobodan