3

假设我有两个控制器,一个CompaniesController和一个IndexController。事实证明,我的Index路线需要的所有数据都来自CompaniesController. 所以,我已经指定了我IndexController这样的:

App.IndexController = Ember.ArrayController.extend({
    needs: 'companies',
});

如果已经初始化,这很好用CompaniesController,但是我第一次访问该站点时呢?CompaniesController是空的。

所以,我需要CompaniesControllerIndexController. 我该怎么做呢?

4

2 回答 2

5

使用setupControllercontrollerForIndexRoute

App.IndexRoute = Ember.Route.extend({
  model: function() {
    return this.store.find('company');
  },
  setupController: function(controller, model) {
    this.controllerFor('companies').set('model', model);
  }
});
于 2013-07-19T15:49:05.173 回答
1

在我看来,您可能想要反转依赖并让您的 CompaniesController 依赖于 Application,如下所示:

App.CompaniesController = Ember.ArrayController.extend({
    needs: 'application',
    contentBinding: 'controllers.application.companies'
});

然后,只需在首次加载基本路由时根据需要初始化您的应用程序。

于 2013-07-19T16:26:50.597 回答