获得未定义的值时,角度“ngif”不起作用

Ang*_*dy2 3 typescript angular

如果我的数组没有某些值或某些值在 html 中未定义,我想这样做,只是不要尝试从数组中获取它。

空数组:[{0:未定义}]

全阵列:

[
{0: "Name"},  
{1: "img.src"},  
{2: name: string,  family: string, age: number} 
]
Run Code Online (Sandbox Code Playgroud)

0: "Name" , 1: "img.src" 2 {name: string, family: string; 年龄:数}

我的尝试不起作用:

   <div *ngFor="let fam of familyArray" class="grid-item">
        <button ion-button>
          <img *ngIf="fam[1] != undefined && fam[1] != null "  class="selectImg" src="{{fam[1]}}" alt="">
        </button>
        <span *ngIf="fam[2].name != undefined && family[2].age != undefined  && family[2].age != null && family[2].name != null " class="image-text">{{fam[2].name}}, {{family[2].age}}m.</span>
        <p *ngIf="fam[2].family != undefined  && fam[2].family != null "  class="family-status">{{fam[2].family}}</p>
      </div>
Run Code Online (Sandbox Code Playgroud)

我总是收到此错误:

类型错误:无法读取未定义的属性“1”

或者

类型错误:无法读取未定义的属性“名称”

Viz*_*ler 6

您不需要检查未定义和空值,它会自行处理未定义和空值,您只需要指定如下:

      <div *ngFor="let fam of familyArray" class="grid-item" >
        <button *ngIf="fam[0]" ion-button>
          <img *ngIf="fam[1]"  class="selectImg" src="{{fam[1]}}" alt="">
        </button>
        <span *ngIf="fam[2] && fam[2].name && family[2].age" class="image-text">{{fam[2].name}}, {{family[2].age}}m.</span>
        <p *ngIf="fam[2].family"  class="family-status">{{fam[2].family}}</p>
      </div>
Run Code Online (Sandbox Code Playgroud)

您接收的对象数组实际上是错误的格式,所有对象都应该是相同的类型,但需要遵循一些标准约定。