如何在ember js中从子组件调用父组件方法

时间:2018-05-03 18:26:43

标签: ember.js

我知道Ember中的操作和数据提升策略,但有没有办法可以从子组件调用父组件方法(而不是操作)?

2 个答案:

答案 0 :(得分:1)

据我所知,没有直接的方法,但你可以用全局事件总线实现相同的行为。

使用Ember.Service创建一个新服务,它将使用Ember.Evented作为事件总线。使用此服务父组件可以发布事件,子组件现在可以订阅这些事件而无需引用父组件

答案 1 :(得分:0)

好吧,如果我想从子级调用父级方法,我将以这种方式使用:

父component.hbs:

{{component-name owner=this}}

父component.js:

import Component from '@ember/component';

export default Component.extend({
    parentMethod(){
        // I am doing something
    }
});

子component.js

import Component from '@ember/component';

export default Component.extend({
    didInsertElement(){
        this.get('owner').parentMethod();
    }
});

在这种情况下,这不是操作。