具有3个or子句和null对象的NgIF

时间:2018-08-18 12:08:28

标签: angular

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

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

然后我有一个JSON对象,在某些记录中,但有时它具有相册中的照片(或者它为null),或者有时它具有一个属于社区的普通相册(或者它为null,因为照片属于到相册)。

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

谢谢。

3 个答案:

答案 0 :(得分:1)

尝试一下..因为我认为您的条件在html中使用boolean看起来不错,那为什么不尝试使用component

    isTrue:boolean;

    constructor(){
    if((this.photo != null && (this.owner === this.photo.calbum.community.user.id || this.owner === this.photo.album.user.id)) || this.isAdmin == true){
         this.isTrue=true;
    }else {
         this.isTrue=false;
    }
 }

并在html中添加此*ngIf=isTrue;,或者您可以根据需要使用方法代替构造函数,并从html调用它

答案 1 :(得分:1)

您可以使用吸气剂

在您的组件中

goto

答案 2 :(得分:0)

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

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

The safe navigation operator ( ?. ) and null property paths

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

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>