我知道Ember中的操作和数据提升策略,但有没有办法可以从子组件调用父组件方法(而不是操作)?
答案 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();
}
});
在这种情况下,这不是操作。