Angular 角度5,组件之间的相互作用
目前正在学习Angular5课程,在对该主题进行了一段时间的研究之后,我仍然不完全理解以下内容: 代码: App.component.html:Angular 角度5,组件之间的相互作用,angular,typescript,angular5,angular-components,Angular,Typescript,Angular5,Angular Components,目前正在学习Angular5课程,在对该主题进行了一段时间的研究之后,我仍然不完全理解以下内容: 代码: App.component.html: <app-server-element *ngFor="let serverElement of serverElements" [element]="serverElement" ></app-server-element> <p> <stro
<app-server-element
*ngFor="let serverElement of serverElements"
[element]="serverElement"
></app-server-element>
<p>
<strong *ngIf="element.type === 'server'" style="color: red">
{{ element.content }}</strong>
<em *ngIf="element.type === 'blueprint'">{{ element.content }}</em>
</p>
server-element.component.html:
<app-server-element
*ngFor="let serverElement of serverElements"
[element]="serverElement"
></app-server-element>
<p>
<strong *ngIf="element.type === 'server'" style="color: red">
{{ element.content }}</strong>
<em *ngIf="element.type === 'blueprint'">{{ element.content }}</em>
</p>
问题:
我有点困惑这部分的作用:
*ngFor="let serverElement of serverElements"
[element]="serverElement"
在我目前的理解中,它是一个for循环,循环遍历serverElementsArray的所有元素。但是
[element]=“serverElement”
具体做了什么呢?关于通过serverElementsArray
的所有元素的循环,您是完全正确的
使用[element]=…
绑定组件的输入。阅读…:-)强>
请注意它在-appserver元素
组件上的循环位置。我假设这个组件负责打印我们的服务器详细信息
但是您必须以某种方式为它提供服务器,它应该打印出来。这就是[element]=…
发挥作用的地方
注意ServerElementComponent
的@Input()元素。这定义了组件接受一些输入值
因此,使用[element]=…
可以将单个serverElement绑定到ServerElementComponent
中名为元素的@Input
。循环中的每个项目都将有多个ServerElementComponent
s。使用@Input method,您只能在父子组件之间进行通信。
而且,管理父子组件的层次结构将变得很困难。
因此,考虑RXJS事件发射器,它允许使用与U/P>相关的公共服务来与兄弟组件通信。