2017-01-10 92 views

回答

5

而不是使用ViewChild,你可以使用ViewChildren附加child componentlast divViewChildren將使用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

由於_resultsQueryList私有成員使用以下方法來防止tslint錯誤。

this.cmpRef = this.target.toArray()[index].createComponent(factory); 
+1

你知道怎麼做到這一點可以添加一個元素BEFORE而不是之後? @micronyks – Dunos

+0

@micronyks'_results'是'QueryList'的私人成員。有什麼建議麼?我認爲你的QueryList有一個使用括號的錯字。它應該是QueryList ,不應該嗎? – ngfelixl

+0

@ngfelixl這個問題在2017年得到了回覆。這可能已經改變。需要檢查更新。 – micronyks