2014-02-20 51 views
2

所以,基本上我有两个控制器。其中一个人有一个行动,我希望能够从另一个控制器中的行动中调用。我想是这样的:EmberJS:从子控制器调用动作

控制器:

Demoapp.FooController = Ember.ObjectController.extend({ 
    needs: ['bar'], 
    actions: { 
     fooControllerAction: function() { 
      var foo = this.get('controllers.foo'); 
      foo.set('sendMsg', true); 
     } 
    }  
}); 

Demoapp.BarController = Ember.ObjectController.extend({ 
    sendMsg: false, 
    actions: { 
     barControllerMsg: function() { 
      console.log("Message from Bar controller"); 
     }.observes('sendMsg') 
    }  
}); 

模板:

<h1>Foo Template</h1> 

<button type="submit" {{action 'fooControllerAction'}}>Call barControllerMsg</button> 

,并没有工作...我真的不知道如何去这样做,有人可以提供一些建议吗?我发现的另一个解决方案是在模板中有很多逻辑,我宁愿避免这种情况。

+1

的,我不认为观察者功能应该是在'actions'哈希 – chopper

+0

正确的,现在它的工作原理。谢谢! – Natalia

+0

太棒了!我做了一个答案。请接受它,所以问题不再显示为未答复。 – chopper

回答

0

以观察员出actions哈希

Demoapp.BarController = Ember.ObjectController.extend({ 
    sendMsg: false, 
    barControllerMsg: function() { 
     console.log("Message from Bar controller"); 
    }.observes('sendMsg') 
});