Ionic2:如何从模式组件(从ModalController创建)中捕获事件?

Ionic2:如何从模式组件(从ModalController创建)中捕获事件?,ionic2,Ionic2,是否有一种方法可以捕获模态组件(使用ModalController创建)内发出的本地事件而不必关闭,并且不必使用全局事件或服务 执行此操作的方法是使用listenfrom,但我不知道在这种情况下如何获得对组件实例的正确引用 MyComponent.ts ... export class MyComponent { @Output() myAwesomeEvent = new EventEmitter<string>(); fireEvent() { this.myA

是否有一种方法可以捕获模态组件(使用ModalController创建)内发出的本地事件而不必关闭,并且不必使用全局
事件
或服务

执行此操作的方法是使用
listen
from,但我不知道在这种情况下如何获得对组件实例的正确引用

MyComponent.ts

...
export class MyComponent {
  @Output() myAwesomeEvent = new EventEmitter<string>();

  fireEvent() {
    this.myAwesomeEvent.emit('payload');
  }
}
...
const modal = this.modalCtrl.create(MyComponent);
// how do I catch 'myAwesomeEvent' emitted from within MyComponent?
...

访问模式中的
实例
属性

const modal = this.modalCtrl.create(MyComponent);
modal.didEnter.subscribe(() => {
    modal.instance.myAwesomeEvent.subscribe(....)
});
爱奥尼亚版本3:

this.modalCtrl.create(MyComponent).present().then((result) =>{
    modal.instance.myAwesomeEvent.subscribe(....)
});

爱奥尼亚版本4这可能是一个解决办法?(在我的应用程序中似乎工作正常)

myComponent:

export class MyComponent{    
@Output() clickFavorite= new EventEmitter<any>();

  favorite(evt){
      this.clickFavorite.emit("OK");}
  }
}
导出类MyComponent{
@Output()clickFavorite=neweventemitter();
收藏夹(evt){
this.clickFavorite.emit(“确定”);}
}
}

在我的脑海中,我认为模态变量将具有instance属性,从中可以得到myAwesomeEvent so modal.instance.myAwesomeEvent.subscribe(…@misha130正是我所需要的。设置一个答案,我将接受。提示:使用
modal.dienter
设置处理程序,以确保
实例
成员可用。我得到的是error modal.dienter不是函数。它不工作。我得到的是error dienter没有为modal定义请注意,这是ionic2版本。I在ionic v5中为我添加了ionic 3Works的编辑答案。对此有何解释?为什么在接收端创建发射器?
export class MyComponent{    
@Output() clickFavorite= new EventEmitter<any>();

  favorite(evt){
      this.clickFavorite.emit("OK");}
  }
}