首页 > 解决方案 > 带有 3 个 or 子句和空对象的 NgIF

问题描述

看起来我不知道如何创建一个带有 3 个 Or 子句的 NgIf,但我找不到错误或任何要复制的示例:

*ngIf="owner === photo.calbum.community.user.id || owner === photo.album.user.id || isAdmin == true"

然后我有一个 JSON 对象,在某些记录中,但有时它有一张来自相册的照片(或者它为空),或者有时它有一个属于社区的公共相册(或者它是空的,因为照片属于相册)。

在这两种情况下,它们都属于一个用户,但通过不同的对象。但其中之一将始终为空,我需要检查整个 JSON 文件。

谢谢。

标签: angular

解决方案


如果有任何对象或其属性,则必须使用 (?) 运算符null

*ngIf="owner === photo?.calbum?.community?.user?.id || owner === photo?.album?.user?.id || isAdmin == true"

安全导航运算符 (?.) 和 null 属性路径

另一种选择是创建一个属性或函数,您只能检查此值,但您需要处理检查该值是否为空。

get state() : boolean{
  if (this.isAdmin ) {
    return true
  } else if (this.photo && this.photo.calbum) {
    return this.owner === this.photo.calbum.community.user.id
  } else if (this.photo && this.photo.album) {
    return this.owner === this.photo.album.user.id
  } else {
    return false;
  }
}

模板

 <div *ngIf="state">/<div>

推荐阅读