在Angular 16(及更早版本)中,可以在for循环后面使用"as"来将过滤后的结果声明为变量.

这样:

<div *ngFor="let item of (items | pipe: Query) as results">
{{item}}
</div>

如何在angular 17中实现这一目标?

我已经try 过使用了

@for (let item of (items | pipe: Query) as results; track item.id) {
<div>
{{item}}
</div>
}

但这并不起作用. 我希望能够使用我的过滤结果并将它们存储在物品数组中.

这可能吗?如有任何帮助,我们将不胜感激!

推荐答案

在Angular 17控制流语法中,@for不支持集合别名(即使用as关键字).

See this issue on GitHub,此处有相关引用:

如上所述,@for不支持集合的别名.

当迁移期间检测到as时,角迁移目前不会但应该记录警告. 有一个开放的issue to fix that.

另一种方法是,如果您想要显式别名,则使用@if中的管道提取结果,然后在@for中使用它们.类似于这样的:

@if (items$ | async; as results) {

@for (item of results; track item.id) {
<div>
{{item}}
</div>
}

Typescript相关问答推荐

为什么当类类型与方法参数类型不兼容时,该函数可以接受类类型

发出与HTML多姆事件重叠的Angular事件

实现忽略了JSSOM中的doctor.body.innerHTML集

如何基于对象关键字派生类型?

处理API响应中的日期对象

SortKey类型不起作用,尽管它使用的单个类型工作正常<>'

在TypeScript中,除了映射类型之外还使用的`in`二进制运算符?

如何在第一次加载组件时加载ref数组

编剧错误:正在等待Expect(Locator).toBeVisible()

在包含泛型的类型脚本中引用递归类型A<;-&B

如何消除在Next.js中使用Reaction上下文的延迟?

从子类构造函数推断父类泛型类型

有没有可能为这样的函数写一个类型?

在排版修饰器中推断方法响应类型

对象类型的TypeScrip隐式索引签名

创建Angular 为17的动态形状时出错

复选框Angular 在Ngfor中的其他块中重复

使用强类型元组实现[Symbol.iterator]的类型脚本?

类型脚本中函数重载中的类型推断问题

换行TypeScript';s具有泛型类型的推断数据类型