在组件中,我有这样的东西:
public hasFoo$: Observable<(name: string) => boolean> = ...
现在我想在我的模板中使用步进器来对此进行多种使用:
<mat-vertical-stepper>
<mat-step *ngIf="hasFoo$('1st step')">
I'm displayed when the 1st name is valid.
</mat-step>
<mat-step *ngIf="hasFoo$('2nd step')">
I'm displayed when the 2nd name is valid.
</mat-step>
</mat-vertical-stepper>
我该如何使它异步?我无法运行它。我尝试了(hasFoo$ | async)?.call(this, '1st step')
,它可以在组件中使用,但不适用于我的模板。还有其他想法吗?
答案 0 :(得分:0)
您有一个Observable可以产生函数吗?如果是这样,您可以这样写:
<mat-vertical-stepper *ngIf="hasFoo$ | async as func>
<mat-step *ngIf="func('1st step')">
I'm displayed when the 1st name is valid.
</mat-step>
<mat-step *ngIf="func('2nd step')">
I'm displayed when the 2nd name is valid.
</mat-step>
</mat-vertical-stepper>
这样,一旦Observable返回一个值,它将被声明为局部上下文变量func
,您可以在模板的基础部分中对其进行调用。您还将只有一个订阅。