检测动态添加子项的时间

时间:2016-08-31 20:13:33

标签: angular angular2-template

我使用ViewContainerRef.createEmbeddedView将模板添加到parent组件。在模板中,我有child个元素由我的自定义child指令处理。 我尝试使用@Query(Child)QueryList检测孩子的创建时间,但是在添加孩子时,QueryList订阅回调未被调用。

如何检测子元素何时(动态)添加到父元素?

示例plunkr

在示例中,您可以看到父级为每个子组件呈现div,如果按add按钮添加了子级,则可以在开发人员工具中看到child个元素添加并输出控制台消息,但查询列表未更新...

有什么想法吗?

更新RC6:

RC6已删除

@Query(),我已更新了使用@ContentChildren@ViewChildren的plunker,结果相同,都没有检测到{{1}添加的新元素}}

另外,我在plunker中添加了一个函数来获取ViewContainerRef.createEmbeddedView的元素,这可行,但我认为这种方式并不是最好的。

1 个答案:

答案 0 :(得分:-1)

您是否考虑过使用OnChanges?它是一个钩子,只要输入发生变化就会更新,它将提供你可以比较和处理的声明和值的json列表。

import {OnChanges} from '@angular/core'

class implements OnChanges


ngOnChanges(){
//handle changes
}