ember.js - EmberJS : Calling action from child controller

标签 ember.js

所以,基本上我有两个 Controller 。其中一个有一个 Action ,我希望能够从另一个 Controller 中的 Action 调用。我试过这样的事情:

Controller :

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哈希

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

关于ember.js - EmberJS : Calling action from child controller,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21895414/

相关文章:

ios - Ember Cordova 应用程序在 iOS 11.3 中卡在加载屏幕上

ember.js - EmberJS 在有效负载 JSONAPI 中嵌入了项目

javascript - Ember 2.0的 Handlebars helper不是一个函数吗?

ember.js - Ember-Data .find() vs .all() - 如何控制缓存?

javascript - 使用 Ember 初始化器设置域相关数据

javascript - Ember.js:内联 Handlebars 模板在应用程序的根元素处呈现

javascript - Ember.Select SelectionBinding 在加载 View 时触发

javascript - Ember CLI 中的命令 "ember server"立即退出

javascript - Ember 路由模型阻止 javascript

javascript - Ember 对来自 ember-data 模型关联的另一个 Controller 的数据进行排序