Предположим, у меня есть пустой наблюдаемый объект, который в какой-то момент времени заполняется такими данными:
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>