Emberjs - 在一条路线中设置多个模型

时间:2015-02-05 01:30:29

标签: ember.js

我有一个Emberjs应用程序,它在主页面上包含一个仪表板,由/ browse路径加载。我需要在浏览路径中选择多个模型,因此我可以将它们分配给我在页面上的多个视图。

我可以使用下面的代码检索模型,但我觉得我做错了 - 即使数据在相应的模板中可用,我也不确定如何在模板之外引用模型。

当我为仪表板上的每个模板调用setupController时,如何指定我需要的模型?我甚至需要调用setupController吗?我真的很想了解Emberjs中的模型选择,分配和管理,所以任何建议都非常值得赞赏!

App.BrowseRoute = Ember.Route.extend({
    model: function () {
        return new Ember.RSVP.hash({
            sort: this.store.find('sort'),
            feature: this.store.find('feature'),
            category: this.store.find('category'),
            activity: this.store.find('activity')
        });
    },
    setupController: function (controller, model) {
        this.controllerFor('sort').set('model', this.sort);
    },
    setupController: function (controller, model) {
        this.controllerFor('feature').set('model', this.feature);
    },
    setupController: function (controller, model) {
        this.controllerFor('category').set('model', this.category);
    },
    setupController: function (controller, model) {
        this.controllerFor('activity').set('model', this.activity);
    }
});

1 个答案:

答案 0 :(得分:2)

您可以在解析模型挂钩后使用controller.set('desiredModelName', model)设置多个模型。

 App.BrowseRoute = Ember.Route.extend({
        model: function () {
            return new Ember.RSVP.hash({
                sort: this.store.find('sort'),
                feature: this.store.find('feature'),
                category: this.store.find('category'),
                activity: this.store.find('activity')
            });
        },
        setupController: function (controller, model) {
            this._super(controller, model);


            controller.set('sortModel', model.sort);
            controller.set('featureModel', model.feature);
            controller.set('categoryModel', model.category);
           controller.set('activityModel', model.activity);

        },

    });