Angular 5:在可观察的模板中运行函数导致多次调用函数

时间:2018-06-19 01:24:21

标签: angular

模板(html)

<div *ngFor="let item of toArray(observerable_val)">
    {{item.name}}
</div>

组件

toArray(obj_obj) {
    const arr_obj = Object.values(obj_obj);
    return arr_obj;
}

问题

由于ngFor没有迭代对象,我使用此函数将我的obj of obj转换为arr of obj ...这看起来效果不错但是console.logtoArray()时我注意到它无限期地打印东西。那不好吗?如果是这样,处理这种情况的另一种方法是什么?

2 个答案:

答案 0 :(得分:0)

为什么不使用async管道?在ngFor中添加async管道,您不需要具有任何转换功能。
<div *ngFor="let item of observerable_val | async"> {{item.name}} </div>

答案 1 :(得分:0)

如果您真正获得了一个可观察的对象数组,那么定义values: Observable<any[]>;,设置this.values = 'observable array objects '(可能是ngOnInit)和<div *ngFor="let item of values | async">

之类的内容