子组件如何访问EmberJS中父组件的操作?

时间:2016-05-12 11:00:52

标签: ember.js

我已经构建了一个系统,根据某个变量动态生成子组件。但是,所有可能的组件都共享一些方法。如何实现这一目标?

父组件:

export default Ember.Component.extend({
  actions: {
    someAction() {}
  }
});

在父视图中,使用{{component}}帮助程序调用组件

{{component 'someComponent'}}

子组件:

export default Ember.Component.extend({});

这里我需要在子视图中访问父组件中的someAction。

例如:

<button {{action 'someAction'}}>Click me !!</button>

我使用的是Ember 1.13.0

1 个答案:

答案 0 :(得分:2)

您需要停止操作:

{{component 'someComponent' someAction=(action 'someAction')}}

然后在您的子组件中调用它:

this.attrs['someAction']();

你可以把它放在一个普通的混音中:

actions: {
  someAction() {
    this.attrs['someAction'](...arguments);
  }
}