Angular:如何在模板函数中传递布尔异步变量?

Dzm*_*sky 1 templates rxjs angular

我们可以使用 *ngIf 获取异步管道作为变量

<button *ngIf="account$ | async as account" (click)="parseAccount(account)" type="button"></button>
Run Code Online (Sandbox Code Playgroud)

但它当然不适用于布尔值,例如

<button *ngIf="loggedIn$ | async as loggedIn" (click)="checkAuth(loggedIn)" type="button"></button>
Run Code Online (Sandbox Code Playgroud)

因为loggedIn$ | async会发出假的。

是否有任何其他内置方法可以在不使用自定义 ngInit 指令的情况下获取异步值作为模板变量?

Dzm*_*sky 6

刚刚找到答案

<button *ngIf="{ val: loggedIn$ | async } as loggedIn" (click)="checkAuth(loggedIn.val)" type="button"></button>
Run Code Online (Sandbox Code Playgroud)

也许有点 hacky 但有效

请注意,*ngIf此处使用的不是为了可见性,而是作为获取模板变量的一种方式