有没有一种方法可以捕获从 Modal 组件(使用 ModalController 创建的)中发出的本地事件而不需要关闭,并且不必使用全局Events或服务?
执行此操作的 Angular 方法是使用listenRenderer ,但在这种情况下我不知道如何获取对组件实例的正确引用。
我的组件.ts
...
export class MyComponent {
@Output() myAwesomeEvent = new EventEmitter<string>();
fireEvent() {
this.myAwesomeEvent.emit('payload');
}
}
Run Code Online (Sandbox Code Playgroud)
父.ts
...
const modal = this.modalCtrl.create(MyComponent);
// how do I catch 'myAwesomeEvent' emitted from within MyComponent?
...
Run Code Online (Sandbox Code Playgroud)
小智 5
IONIC 版本 4这可能是一个解决方法?(在我的应用程序中似乎工作正常)
let eventEmitter= new EventEmitter();
eventEmitter.subscribe(res=>{
console.log("emitterResult", res)
});
const modal = await this.modalCtrl.create({
component: MyComponent,
componentProps: {
clickFavorite: eventEmitter
}
});
Run Code Online (Sandbox Code Playgroud)
我的组件:
export class MyComponent{
@Output() clickFavorite= new EventEmitter<any>();
favorite(evt){
this.clickFavorite.emit("OK");}
}
}
Run Code Online (Sandbox Code Playgroud)
instance以模式访问属性。
const modal = this.modalCtrl.create(MyComponent);
modal.didEnter.subscribe(() => {
modal.instance.myAwesomeEvent.subscribe(....)
});
Run Code Online (Sandbox Code Playgroud)
离子版本 3:
this.modalCtrl.create(MyComponent).present().then((result) =>{
result.instance.myAwesomeEvent.subscribe(....)
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4262 次 |
| 最近记录: |