angular - 在 Angular 5 中的两组同级组件之间共享数据
问题描述
对Angular来说很新。来自移动应用程序开发。
我知道有很多信息教如何在兄弟组件之间共享数据。但我的问题是在两组兄弟组件之间共享数据。
所以在代码方面,我有 2 个组件(A 和 B)。单击 A 中的按钮时,会更新 B。但在 UI 方面,有 2 套这种 AB 组件。因此,当单击 A1 中的按钮时,会更新 B1。单击 A2 中的按钮时,会更新 B2。
我怎样才能做到这一点?
我试过的
首先,我使用服务来共享数据。但是后来发现点击A1的时候,B1和B2都更新了,这是我不想要的。单击 A2 相同。
解决方案
使用服务在两个兄弟组件之间共享数据绝对是最好的方法,您在这里唯一需要做的就是为您的组件添加一个密钥。
<comp-a [key]="1"></comp-a>
<comp-b [key]="1"></comp-b>
<comp-a [key]="2"></comp-a>
<comp-b [key]="2"></comp-b>
如果组件是通过 a 生成的*ngFor
,则可以使用循环的索引,或者如果一个对象被绑定,则可以使用对象 id。
无论如何,在comp-a
调用服务时,您应该包含密钥。当comp-b
正在侦听的事件被触发时,您应该在事件中包含键,并且comp-b
只有在它与自己的键匹配时才应该响应它。
推荐阅读
- c - 十个最常见的字符及其频率
- c++ - 无法理解比较器的下限功能
- forms - Symfony 表单一次编辑多个对象
- algorithm - 查找用于生成序列中下一个数字的算法
- python - AttributeError:“ElementTree”对象在尝试导入 excel 文件时没有属性“getiterator”
- rust - 特质有时可以移动
- reactjs - 我可以在电子邮件模板中使用 Material-UI 吗?
- docker - Oracle 测试容器抛出“IO 错误:从读取调用中得到减一”
- python - 如何使其成为单线?将列表转换为一堆参数
- python - Python:BeautifulSoup - 从 location.href= 中提取值