如何使用异步管道作为变量在 Angular 17 中进行 ngIf

nav*_*een 7 angular

我在 Angular 16 中有这个

<div *ngIf="post$ | async as post">
  <h1>{{ post.attributes.title }}</h1>
</div>
Run Code Online (Sandbox Code Playgroud)

的类型post$是 Observable<ContentFile<BlogPost | Record<string, never>>>

我想用新的内置控制流语法重写它。

@if(post$|async as post) {

}
Run Code Online (Sandbox Code Playgroud)

as post部分结果为

解析器错误:[post$|async as post] 中的第 13 列出现意外标记“as”...

如何解决这个问题?

Mat*_*ler 17

你缺少分号:

@if(post$ | async; as post) {

}
Run Code Online (Sandbox Code Playgroud)

  • https://angular.dev/guide/templates/control-flow#referencing-the-conditional-expressions-result (2认同)