当前位置:  开发笔记 > 编程语言 > 正文

角度2:在第n个孩子之后动态添加组件

如何解决《角度2:在第n个孩子之后动态添加组件》经验,为你挑选了1个好方法。

有没有一种优雅的方式我可以在角度2中实现以下解决方案?

Child 1
Child 2
Child 3
$("#parent > div:nth-child(2)").after("
foobar
");

我开始喜欢这个,但它在Child 1之后添加了foobar.我想在Child 2之后使用它.

动态插入Plnkr



1> micronyks..:

而不是使用ViewChild,您可以使用ViewChildren附加child componentlast div.ViewChildren会看target div's孩子们使用QueryList

@ViewChildren('target', {read: ViewContainerRef}) target: QueryList(ViewContainerRef);

并且需要像这样抓住最后一个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);

推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有