【问题标题】:EmberJS: Calling action from child controllerEmberJS:从子控制器调用动作
【发布时间】:2014-02-20 00:08:16
【问题描述】:

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

控制器:

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>

它没有用......我不太确定如何去做,有人可以提供一些建议吗?我发现的另一个解决方案涉及在模板中包含大量逻辑,我宁愿避免这样做。

【问题讨论】:

  • 我认为观察者函数不应该在actions哈希中
  • 正确,现在可以了。谢谢!
  • 太棒了!我做了一个回答。请接受它,这样问题就不会再显示为未回答了。

标签: ember.js


【解决方案1】:

将观察者从actions哈希中取出

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

【讨论】:

    猜你喜欢
    • 2013-10-05
    • 2014-08-25
    • 2011-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-22
    • 2010-09-29
    • 1970-01-01
    相关资源
    最近更新 更多