angular - 通信 - 具有多个父组件的子组件
问题描述
在我的应用程序中有多个父组件,其中有表组件作为子组件,我在开始时传递所有参数,当我单击排序时它转到父组件(现在由它完成@Output
),它从服务中获取数据(这是在父级中定义的,因为所有父级都从不同的服务中获取数据),然后通过引用 Table 类将数据传递给子级,并在我们从后端对数据进行排序时viewChild
调用类中的方法侦听。tablecomponent
我尝试了以下方法:-
共享服务方法,从孩子我无法确定应该调用哪个父母。
行为主题:- 输出是从所有父母那里订阅的,所以当一个输出被发出时,它会进入所有父母。
@ViewChild('mainTable') mainTable: TableComponent;
callChildren(){
this.mainTable.listenSort(this.rows);
}
任何人都可以建议我解决这个问题的明确方法吗?
解决方案
您应该使用事件发射器与父组件通信,以便您仅从父组件捕获事件。如果要使用服务,则需要从每个父组件创建单独的服务实例。
推荐阅读
- android - Firebase 用户和 Google 用户的 BaseActivity 示例
- java - FXML 实现:目的和实用性是什么?
- r - 在 h2o 中预测方法 - 在分类的情况下预测列的含义是什么
- oauth - 访问和刷新令牌的生命周期
- angular - 在 IIS 上运行的 .NET Core Angular 应用程序 - 不是 IIS Express
- google-colaboratory - Google Colab 会话可以访问另一个会话的虚拟机中的文件吗?
- docker - 如何修复 microk8s 上的“无法拉取图像”
- sql - 在 where 子句中具有相关子查询的 SQL 查询
- node.js - Electron:使用 showOpenDialog 允许在 Linux 和 Win10 上选择文件,但为什么我不能在 MacOS 上选择文件?
- reactjs - 如何将 Next.js 动态与导出多个函数的库一起使用?