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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在ember js中从子组件调用父组件方法相关的知识,希望对你有一定的参考价值。

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

答案

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

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

另一答案

好吧,如果我想从child调用父方法,我就是这样使用的:

父组件.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();
    }
});

在这种情况下,这不是行动。

以上是关于如何在ember js中从子组件调用父组件方法的主要内容,如果未能解决你的问题,请参考以下文章

从子组件调用父函数会在 Vue.js 中引发错误

如何在 nuxt.js 上从子组件获取父组件的值?

从子组件调用父组件的方法 - React Native

如何将变量的值从子组件发送到父组件?

是否可以在 React.js 中从子组件中隐藏父组件?

使用 Vue.js 将信息从子组件传递到父组件