灰烬手动设置绑定

时间:2014-06-03 20:42:48

标签: ember.js

我有一个布局,我的标题区域总是在{{outlet}}之外。实际的标题取决于我的子路由中的模型。这就是为什么我在setupController中定义了类似这样的东西:

  var appController =  this.controllerFor('application');
  appController.set('title', model.get('title'));

问题是,那个时刻该模型可能尚未解决。这就是为什么我想在某些情况下创建从我的模型的标题到appController的绑定。

在其他情况下,标题可能会修复。在那些情况下,我不想用一个简单的集合来覆盖绑定:

  var appController =  this.controllerFor('application');
  appController.set('title', 'Dashboard');

或者是否有更好的方法可以从插座外部访问子路由值。 (考虑到需求可能是错误的方法,否则我的应用程序控制器将需要所有其他控制器,我不知道,哪一个是活动的。

1 个答案:

答案 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);
    }
  }
});