ViewChildren在ngFor中没有绑定 [英] ViewChildren doesn't bind in ngFor

查看:59
本文介绍了ViewChildren在ngFor中没有绑定的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个简单的模板:

<div *ngFor="let skill of allSkills | async ">
    <div class="skill-chart-with-img">
        <skill-chart-view></skill-chart-view>
        <div #skillImg>
            some data
        </div>
    </div>
</div>

当我尝试绑定#skillImg时,我有一个空的QueryList:

When I try to bind on #skillImg, I have an empty QueryList:

@ViewChildren("skillImg") private skillImgs: QueryList<ElementRef>;
ngAfterViewInit(): void {
        this.skillImgs.forEach((skill: ElementRef) => {
           //some work with skill
        });
}

也许我错过了一些事情,或者我的任务有更好的解决方案?

Maybe I miss something or my task have a better solution?

推荐答案

问题出在异步数据中.解决方案是订阅QueryList更改

The problem was in async data. The solution is to subscribe on QueryList changes

示例:

ngAfterViewInit(): void {
    this.skillImgs.changes
        .subscribe(() => console.log(this.skillImgs));
}

这篇关于ViewChildren在ngFor中没有绑定的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆