如何解决有没有办法将使用@output 的子组件发出的事件转换为父组件中的可观察流
要发出从子级到父级的任何点击,我们可以在子级和父级 html 中使用 @output,我们可以使用如下所示的方式侦听该事件
在父级中,我们可以编写方法 addItem($event) 并完成我们的工作,但是有什么方法可以将其转换为流,以便我可以将其与其他可观察对象结合使用。
我现在能想到的一种方法是在父级中有一个主题,然后发出如下所示的值以在父级中创建一个流
addItem($event) {
subject.emit()
}
但是如果我们有任何直接的方法将 child 发出的事件转换为 observable 那就更好了。
解决方法
您可以通过使用 ViewChild 装饰器来实现这一点。
<app-item-output #myChild></app-item-output>
@ViewChild('myChild') myChild: ItemOutputComponent;
ngAfterViewInit() {
this.myChild.newItemEvent.subscribe(
event => /** do something **/
);
}
试试stackblitz上描述的:
https://stackblitz.com/edit/angular-ivy-q9rcmk?file=src/app/app.component.ts
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。