我对 Angular 2 很陌生,对 JavaScript\TypeScript 不太感兴趣(我来自 Java),并且我对我正在研究的一个示例有一些疑问,该示例涉及组件如何使用另一个组件中定义的属性(属性\事件绑定)。该示例展示了如何在父组件中使用和显示在子组件中声明的元素数组。
所以我有应用程序组件那就是父组件.
这是应用程序组件“视图”命名应用程序组件.html:
<div class="container">
<app-cockpit></app-cockpit>
<hr>
<div class="row">
<div class="col-xs-12">
<app-server-element
*ngFor="let serverElement of serverElements"
[element]="serverElement"></app-server-element>
</div>
</div>
</div>
据我所知,这段代码生成应用程序服务器元素(我的应用程序的另一个组件及其布局)从服务器元素数组被定义到应用程序组件.ts类,这个:
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
serverElements = [{type: 'server', name: 'TestServer', content: 'Just a Test'}];
}
所以在这里我有第一个疑问:做:
<app-server-element
*ngFor="let serverElement of serverElements"
[element]="serverElement">
</app-server-element>
The *ngFor指令正在迭代服务器元素数组被定义到应用程序组件.ts类(与主要相关应用程序组件组件)而不是在服务器元素.component.ts类(与成分)。
它工作得很好,但在我看来有点奇怪。为什么?我的想法是这个*ngFor指令被声明到 HTML 代码中应用程序组件.html相关于,因此迭代是在相关类中定义的数组上进行的。
是我遗漏了什么吗?