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
的模型,对吗?