我使用ViewContainerRef.createEmbeddedView
将模板添加到parent
组件。在模板中,我有child
个元素由我的自定义child
指令处理。
我尝试使用@Query(Child)
和QueryList
检测孩子的创建时间,但是在添加孩子时,QueryList
订阅回调未被调用。
如何检测子元素何时(动态)添加到父元素?
示例plunkr
在示例中,您可以看到父级为每个子组件呈现div
,如果按add
按钮添加了子级,则可以在开发人员工具中看到child
个元素添加并输出控制台消息,但查询列表未更新...
有什么想法吗?
更新RC6:
RC6已删除 @Query()
,我已更新了使用@ContentChildren
和@ViewChildren
的plunker,结果相同,都没有检测到{{1}添加的新元素}}
另外,我在plunker中添加了一个函数来获取ViewContainerRef.createEmbeddedView
的元素,这可行,但我认为这种方式并不是最好的。
答案 0 :(得分:-1)
您是否考虑过使用OnChanges?它是一个钩子,只要输入发生变化就会更新,它将提供你可以比较和处理的声明和值的json列表。
import {OnChanges} from '@angular/core'
class implements OnChanges
ngOnChanges(){
//handle changes
}