2014-02-20 50 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') 
});