【发布时间】:2017-11-15 05:49:21
【问题描述】:
我是 Angular 2 的新手,我对 JavaScript\TypeScript(我来自 Java)不太感兴趣(属性\事件绑定)。该示例展示了如何使用在子组件中声明的元素数组并在父组件中显示。
所以我有 app-component,它是 父组件。
这是名为app-component.html的app-component“视图”:
<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>
据我所知,此代码从定义到app.component.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>
*ngFor 指令正在迭代 serverElements 数组,该数组定义在 app.component.ts 类中(与主app-component 组件)而不是 server-element.component.ts 类(与 组件相关)。
它工作正常,但在我看来有点奇怪。为什么?我的想法是把这个*ngFor指令声明到相关的app-component.html的HTML代码中,所以迭代是在相关类中定义的数组上。
是不是我错过了什么?
【问题讨论】:
-
循环属于父组件(app-conmponent),它渲染N个子组件(server-whatever),传递一个prop
element=== 来自父组件的数组的每个元素零件。视图属于父组件,因此只能使用父脚本中的数据。
标签: javascript angular typescript