EmberJS:从子控制器调用动作

时间:2014-02-20 00:08:16

标签: ember.js

所以,基本上我有两个控制器。其中一个有一个我希望能够从另一个控制器内的动作调用的动作。我试过这样的事情:

控制器:

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 个答案:

答案 0 :(得分:0)

将观察者从actions哈希

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