Angular 模板语句中的异步参数

Angular async parameter in template statement

我目前很难弄清楚如何在进行事件绑定时在模板语句中使用异步参数。

我试过以下片段:

<div (click)="goToProfile((user|async)?.id)"></div>

它失败了

ng: Parser Error: Cannot have a pipe in an action expression at column 20 in [goToProfile((user|async)?.id)] in @2:19 ng: The pipe '' could not be found

我相信它是在告诉您不能对传递给函数的参数使用管道。

你必须做类似

的事情
{{ user | async }}

goToProfile(user ? user.id : null)

如果您只是想等待对象被填充,可能类似于

<div *ngIf="user">
    <div (click)="goToProfile(user.id)"></div>
</div>

你可以这样做

<div *ngIf="user | async as u" (click)="goToProfile(u.id)"></div>