而不是使用ViewChild
,你可以使用ViewChildren
附加child component
至last div
。 ViewChildren
將使用QueryList
@ViewChildren('target', {read: ViewContainerRef}) target: QueryList(ViewContainerRef);
查看target div's
孩子了,而要抓住最後一個div像這樣,
this.cmpRef = this.target._results[2].createComponent(factory)
//<---added ._results[2] which returns last div element.
//<---you can use ._result[0],_resultt[1],_result[2] to append dynamic component accordingly.
工作演示:https://plnkr.co/edit/1KOK8gYgJnzAMUGnyy1P?p=preview
注意:現在,如果你願意,你可以使它更加動態。
UPDATE
由於_results
是QueryList
私有成員使用以下方法來防止tslint錯誤。
this.cmpRef = this.target.toArray()[index].createComponent(factory);
你知道怎麼做到這一點可以添加一個元素BEFORE而不是之後? @micronyks – Dunos
@micronyks'_results'是'QueryList'的私人成員。有什麼建議麼?我認爲你的QueryList有一個使用括號的錯字。它應該是QueryList,不應該嗎? –
ngfelixl
@ngfelixl這個問題在2017年得到了回覆。這可能已經改變。需要檢查更新。 – micronyks