我知道 Ember 中的操作向下和数据向上策略,但是有没有办法可以从子组件调用父组件方法(而不是操作)?
问问题
1410 次
2 回答
4
好吧,如果我想从孩子调用父方法,我会以这种方式使用:
父组件.hbs:
{{component-name owner=this}}
父组件.js:
import Component from '@ember/component';
export default Component.extend({
parentMethod(){
// I am doing something
}
});
子组件.js
import Component from '@ember/component';
export default Component.extend({
didInsertElement(){
this.get('owner').parentMethod();
}
});
在这种情况下,这不是行动。
于 2018-07-27T16:24:12.453 回答
1
据我所知,没有直接的方法,但您可以使用全局事件总线实现相同的行为。
使用 Ember.Service 创建一个新服务,该服务将使用 Ember.Evented 充当事件总线。使用此服务父组件可以发布事件,子组件现在可以订阅这些事件而无需引用父组件
于 2018-05-08T03:04:07.023 回答