Ember.js 如何从另一个';需要';信息技术

Ember.js 如何从另一个';需要';信息技术,ember.js,Ember.js,假设我有两个控制器,一个companyescontroller和一个IndexController。原来我的索引路由需要的所有数据都来自公司控制器。因此,我指定了我的IndexController,如下所示: App.IndexController = Ember.ArrayController.extend({ needs: 'companies', }); 如果companyescontroller已经初始化,那么这种方法效果很好,但是我第一次访问该站点的时候呢公司控制器为空 因此

假设我有两个控制器,一个
companyescontroller
和一个
IndexController
。原来我的
索引
路由需要的所有数据都来自
公司控制器
。因此,我指定了我的
IndexController
,如下所示:

App.IndexController = Ember.ArrayController.extend({
    needs: 'companies',
});
如果
companyescontroller
已经初始化,那么这种方法效果很好,但是我第一次访问该站点的时候呢<代码>公司控制器为空


因此,我需要从
IndexController
中初始化
companyescontroller
的数据。如何执行此操作?

索引路由
中使用
设置控制器
控制器

App.IndexRoute = Ember.Route.extend({
  model: function() {
    return this.store.find('company');
  },
  setupController: function(controller, model) {
    this.controllerFor('companies').set('model', model);
  }
});

在我看来,您可能希望反转依赖关系,让您的CompanyController依赖于应用程序,如下所示:

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

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

我正要回答,很抱歉延迟。。。但是我认为最好还是等一等,现在你自己已经弄明白了,这会给你更多的自我评估:)你会想把
应用程序公司移动/分组。查找
模型或
后模型
挂钩中,这样它就会暂停加载数据。或者,如果您已经在这些钩子中加载数据,则将其链接到另一个承诺。@DarshanSawardekar但是
model
钩子不是用来在当前路由上设置模型的吗?我不想将公司数组设置为
IndexController
的模型,对吗?