How to check empty object in angular 2 template using *ngIf
我想检查我的对象是否为空,不要呈现我的元素,这是我的代码:
1 2 3 4 | <a [routerLink]="['Inside_group_page',{'name':previous_info.path | dotTodash }]" > {{previous_info.title}} |
但是我的代码是错误的,最好的方法是什么?
这应该是您想要的:
1 |
或更短
1 |
每个
Plunker实例
您也可以使用类似的方法:
1 |
使用组件中定义的
1 2 3 | isEmptyObject(obj) { return (obj && (Object.keys(obj).length === 0)); } |
以上答案都可以。但我发现在视图中使用以下选项非常好:
以前的_信息?标题}
可能是重复的问题角度2-如果不检查对象.field是否存在,则出错
这对我很有用:
检查
所以你的例子是:
1 |
更新
长度属性只存在于数组中。因为问题是关于对象的,所以使用
1 | 0"> |
添加
稍微长一点(如果感兴趣的话):
在typescript代码中,执行以下操作:
this.objectLength=object.keys(this.previous_info).length!=0;
然后在HTML文件中检查:
*ngif="对象长度!= 0
仅仅为了可读性而创建的库NGX如果为空或有项目,它将检查对象、集合、映射或数组是否不为空。也许它能帮助别人。它具有与ngif相同的功能(然后支持else和"as"语法)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | arrayOrObjWithData = ['1'] || {id: 1} <h1 *ngxIfNotEmpty="arrayOrObjWithData"> You will see it or // store the result of async pipe in variable <h1 *ngxIfNotEmpty="arrayOrObjWithData$ | async as obj"> {{obj.id}} or noData = [] || {} <h1 *ngxIfHasItems="noData"> You will NOT see it |