如何使用* ngIf检查角2模板中的空对象

我想检查我的对象是否为空,不要渲染我的元素,这是我的代码:

<div class="comeBack_up" *ngIf="previous_info != {}">
   <a 
      [routerLink]="['Inside_group_page',{'name':previous_info.path | dotTodash }]"
      >
        {{previous_info.title}}
   </a>
</div>

但我的代码是错误的,最好的办法是什么?


这应该做你想做的事情:

<div class="comeBack_up" *ngIf="(previous_info | json) != ({} | json)">

或更短

<div class="comeBack_up" *ngIf="(previous_info | json) != '{}'">

每个{}都会创建一个新的实例,并且====比较不同的对象实例总是会导致false 。 当它们被转换为字符串===结果为true

Plunker的例子


你也可以使用类似的东西:

<div class="comeBack_up" *ngIf="isEmptyObject(previous_info)"  >

使用组件中定义的isEmptyObject方法:

isEmptyObject(obj) {
  return (obj && (Object.keys(obj).length === 0));
}

以上答案是可以的。 但是我发现在视图中使用以下内容是非常好的选择:

{{previous_info?.title伪}}

可能重复的问题Angular2 - 错误如果不检查是否存在{{object.field}}

链接地址: http://www.djcxy.com/p/76355.html

上一篇: How to check empty object in angular 2 template using *ngIf

下一篇: Checking something isEmpty in Javascript?