需要帮助设计Backbone Model

时间:2013-06-30 15:30:37

标签: jquery backbone.js

我对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中我得到了一个产品列表,不知道如何将它们映射到产品列表。请帮我一个可行的解决方案。

我想了解骨干模型是否可以在其中包含集合?

1 个答案:

答案 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