获取Backbone,JS可以将多个Collection加载到一个View中?

时间:2014-04-14 10:14:24

标签: jquery backbone.js underscore.js underscore.js-templating

我有一点问题,我不确定我是不是理解它,或者我想做的事情是不可能的。我有一个数据库加载文本,简单的计划文本在两个 不同的页面,家庭和约。

现在我要做的是使用带有Underscore.JS模板的Backbone.JS将此数据/文本加载到可编辑的div(contenteditable set为true)中。

var TextView = Backbone.View.extend({
    el: $(".Loader"), //Template loader placeholder
    render: function() {
        var that = this;
        var AboutTxt = new AboutCollection(); //Get About page text
        var HomeTxt = new HomeCollection(); //Get Home page text
        AboutTxt.fetch({
            success: function(AboutTxt) {
                var BasicTxt = _.template( $('script.BasicText').html(), { AboutTxt: AboutTxt.toJSON() } ); //Load About text into template
                that.$el.html(BasicTxt)
            }
        });
    } //End of render view function
});

所以我的主要问题是,我可以将多个Collection加载到View中,还是应该/可以将多个URL加载到Collection中?

我收集的每个集合都指向一个不同的URL,它使PHP将我的数据库数据JSON编码返回到Backbone。

那么什么是最好的方法或者这样做,还是我完全误解了它?

由于

非常欢迎所有人的帮助。

更新

这些是我的收藏

    var HomeCollection = Backbone.Collection.extend({
    url: 'BasicText/home'
});

var AboutCollection = Backbone.Collection.extend({
    url: '/BasicText/about'
});

我当前没有设置任何模型,但我知道这有效,如果我设置视图以使用这些集合中的每一个。我的目标是只使用一个View来加载这两个集合。那么一个Collection有两个URL来获取JSON编码的数据库数据?

感谢。

1 个答案:

答案 0 :(得分:1)

    var Model = Backbone.Model.extend({
        urlRoot: './url_to_json',
        initialize: function() {
                        this.about = new collection();
                        this.about.url = urlRoot + '/about';
        }       
}),

    Collection = Backbone.Collection.extend({
        model: Model,
    url: './url_to_json'
    })

希望这能帮到你