繁体   English   中英

angular - 如何编写正确的 ngIf 条件 - 数组长度是否大于 1

[英]angular - how to write correct ngIf condition - is array length is bigger then 1

我有 angular 代码,我输入了这样的条件:

<li *ngIf="carProfiles$.length > 1">

这行得通,但是这个.length在我的编辑器中是红色的,它写道

unresolved variable length

我对此很担心,因为无论这段代码是否有效,似乎我做错了什么。 在 ts 文件中:

readonly carProfiles$: Observable<Profile[]>;

和内部构造函数:

this.carProfiles$ = this.allProfiles$.pipe(map((profiles) => profiles.filter((p) => ProfileHelper.isCar(p))));

有什么帮助吗? 我是否需要担心为什么 text.length 是红色的,我是否以正确的方式编写了条件?

您不是在尝试检查数组长度。 您正在尝试检查发出数组的可观察对象的长度(并且不正确)。 相反,您可以先使用async pipe 提取可观察对象内部的发射数组,然后检查长度。 这个async pipe 在后台订阅这个Observable并取消订阅它。

<li *ngIf="(carProfiles$| async)?.length > 0">

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM