我有一个布局,我的标题区域总是在{{outlet}}之外。实际的标题取决于我的子路由中的模型。这就是为什么我在setupController中定义了类似这样的东西:
var appController = this.controllerFor('application');
appController.set('title', model.get('title'));
问题是,那个时刻该模型可能尚未解决。这就是为什么我想在某些情况下创建从我的模型的标题到appController的绑定。
在其他情况下,标题可能会修复。在那些情况下,我不想用一个简单的集合来覆盖绑定:
var appController = this.controllerFor('application');
appController.set('title', 'Dashboard');
或者是否有更好的方法可以从插座外部访问子路由值。 (考虑到需求可能是错误的方法,否则我的应用程序控制器将需要所有其他控制器,我不知道,哪一个是活动的。
答案 0 :(得分:0)
您可以在应用程序路径中创建一个操作,然后使用来自任何其他路由/控制器的发送来执行该操作,然后让操作更新控制器。
App.FooRoute = Em.Route.extend({
someFunc: function(){
this.send('updateFoo', 'blah');
}
});
App.ApplicationRoute = Em.Route.extend({
actions: {
updateFoo: function(value){
this.controller.set('foo', value);
}
}
});