Angular:检查数组长度是否为0

时间:2018-06-04 09:01:02

标签: angular typescript

我有一个简单的要求,即如果收藏夹数组为空,则隐藏编辑按钮。

我在HTML上写的代码:

    <span class="edit-button" *ngIf="favourites.length == 0">EDIT</span>

但我在控制台Unable to get property 'length' of undefined.

上收到错误

我还尝试*ngIf="favourites?.length == 0"仍然遇到同样的错误。

我哪里出错了?

3 个答案:

答案 0 :(得分:1)

请检查组件类中属性收藏夹的初始化。

看起来该属性是在没有初始化的情况下定义的,请为其添加默认值。

如下所示

//Note: Some old V1 examples may use
//"kAudioUnitProperty_SetInputCallback" which existed in
//the old API, instead of "kAudioUnitProperty_SetRenderCallback".
//"kAudioUnitProperty_SetRenderCallback" should
//be used from now on.

希望这有帮助

答案 1 :(得分:0)

首先,您要检查是否favourites.length === 0,但您的要求是否需要隐藏,如果为空,那么它应该是favourites.length != 0,因为*ngIf会显示其是否为真。

您可以先检查favourites然后favourites.length,这意味着它会首先检查收藏夹初始化以及是否有任何数据。

<span class="edit-button" *ngIf="favourites && favourites.length">EDIT</span>

演示: https://stackblitz.com/edit/angular-xuzpx7

答案 2 :(得分:0)

检查角度长度

<div class="box stack-top" *ngIf="profile.id.length == 8"></div>