我是Angular 2的初學者,我對如何通過父組件訪問子組件屬性的教程示例有以下懷疑。這個Angular 2示例如何正確顯示如何使用父組件的子組件屬性?
進入主成分(應用組分)我有此app.component.html視圖:
<div class="container">
<app-server-element
*ngFor="let serverElement of serverElements"
[srvElement]="serverElement">
</app-server-element>
</div>
</div>
</div>
它在serverElements陣列限定到應用迭代。 component.ts類,像這樣:
serverElements = [{type: 'server', name: 'TestServer', content: 'Just a Test'}];
,它是使用元素(此時只有1個,但這不重要)插入<app-server-element>
組件中,該組件是<app-component>
的子組件。
進入ServerElementComponent I類有:
@Component({
selector: 'app-server-element',
templateUrl: './server-element.component.html',
styleUrls: ['./server-element.component.css']
})
export class ServerElementComponent implements OnInit {
@Input('srvElement') element: {type: string, name: string, content: string};
constructor() { }
ngOnInit() {
}
}
所以,進入app.component.html觀點,我有:
<app-server-element
*ngFor="let serverElement of serverElements"
[srvElement]="serverElement">
</app-server-element>
從我所瞭解的
所以[srvElement] =「serverElement」表示我正在訪問此屬性的ServerElementComponent子類(即標註有@input
@Input('srvElement') element: {type: string, name: string, content: string};
所以基本上它究竟意味着之前的迭代?
我將其解釋以這種方式:
迭代的serverElements陣列上(即具有對應於設置@input領域指定字段組(Object的通用陣列'srvElement ')元素在應用服務器元素子組件中定義)。然後使用當前的元素在已使用的組件(用於主視圖)中構建一個@Input('srvElement')元素。
但我不知道這一點。這是什麼意思[srvElement] =「serverElement」語法?
也許我錯了,但在我看來就像一個投:我有一個鑄造由子組件所需要的類型的通用對象。我可以這樣做,因爲在子組件中定義的類型由裝飾器標記爲@Input(),所以它可以由父組件訪問。
它是一個正確的解釋?