我的变量定义如下:myVar: Observable<Observable<MyObject>[]>
。
我正在使用Angular4功能枚举异步管道
*ngFor="let obsMyObject of (myVar | async)"
现在我有MyObject的Observable,但我只需要MyObject。我可以这样写:
<div *ngFor="let obsMyObject of (myVar | async)">
<div *ngIf="let obsMyObject | async; let MyObject"></div>
</div>
但我不能在内部div中执行此操作,因为我设置flex order
(对内部div没有任何影响)属性所以我需要这样的东西:
<div *ngFor="let obsMyObject of (myVar | async); let MyObject = (obsMyObject | async)"
[style.order]="MyObject.order">
</div>
我只知道如何做到这一点,我尝试了这个:
<div *ngFor="let obsMyObject of (myVar | async); let MyObject = obsMyObject)">
{{MyObject}}
</div>
但MyObject未定义,因此let MyObject = (obsMyObject | async)
无法正常工作。
答案 0 :(得分:0)
我认为您想使用ng-container
和ngIf
订阅并创建对observable的引用。然后在ng-container
内,您可以引用这个新变量,就像它是一个普通对象一样。
<ng-container *ngIf="myVar$| async as myVar">
<div *ngFor="let obsMyObject of myVar">
{{obsMyObject }}
</div>
</ng-container>
使用myVar和对象真的很混乱。这是一个更好的例子:
组件中的属性声明为:
users$: Observable<User[]>
模板:
<ng-container *ngIf="users$ | async as users">
<div *ngFor="let user of users">
{{ user.name }}
</div>
</ng-container>