【发布时间】:2019-04-20 07:57:16
【问题描述】:
假设我有一个空的可观察对象,它在某个时刻被这样的数据填满:
const props$ =
{
prop1: 1,
prop2: 2,
prop3: 3,
}
我有一个包含此类数据的循环:
const loopData =
[
{ property: "prop1", label: "First" },
{ property: "prop2", label: "Second" },
{ property: "prop3", label: "Third" },
]
这里是我的 HTML:
<div *ngFor="let obj of loopData">
<label>{{ obj.label }}</label>
<span>{{(props$ | async)?.obj.property}}</span> <---- this line of code will not work
</div>
如果我像(props$ | async)?[obj.property] 这样编写这些行,编译器会抱怨在] 之后询问:,认为我试图在一行中编写条件,这在 ES6 中可用。
那么,有什么情况我可以更清楚地做到这一点。
我想到的一个想法是这样做:
<div *ngFor="let obj of loopData">
<label>{{ obj.label }}</label>
<ng-container *ngIf="props$ | async as props">
<span>{{props[obj.property]}}</span>
</ng-container>
</div>
【问题讨论】:
标签: angular loops asynchronous observable