我具有从后端获取值的角度分量。
这是ts中的方法。
properties: PropertyDto[] = [];
getProperties(event?: LazyLoadEvent): void {
if (this.primengTableHelper.shouldResetPaging(event)) {
this.paginator.changePage(0);
return;
}
this.primengTableHelper.showLoadingIndicator();
this._propertyService.getProperties(
this.filterText,
this.primengTableHelper.getSorting(this.dataTable),
this.primengTableHelper.getMaxResultCount(this.paginator, event),
this.primengTableHelper.getSkipCount(this.paginator, event)
)
.pipe(finalize(() => this.primengTableHelper.hideLoadingIndicator()))
.subscribe(result => {
this.primengTableHelper.totalRecordsCount = result.totalCount;
this.primengTableHelper.records = result.items;
this.primengTableHelper.hideLoadingIndicator();
});
}
result中的某些值可以为空。
此处是这些值的html部分
<td>
{{record.landlord.name}}
</td>
<td>
{{record.agent.name}}
</td>
我有类似
的错误无法读取未定义的属性“名称”
我如何只显示空白字段并避免这些错误?
答案 0 :(得分:8)
使用?
进行安全绑定,请尝试以下操作:
{{record?.landlord?.name}}
答案 1 :(得分:1)
更好。 record?
也可以是record.landlord?
,具体取决于您的数据源,即如果没有记录,则可以不确定房东。
<td>
{{record? record.landlord.name :''}}
</td>
<ng-container *ngIf="record; else elseTemplate">
<td>
{{record.landlord.name}}
</td>
</ng-container>
<ng-template #elseTemplate>
<td>
</td>
</ng-template>
答案 2 :(得分:0)
<td>
{{record.landlord? record.landlord.name :''}}
</td>
检查landlord
的值。如果通过JavaScript表示它是truthy
,请使用它。否则请使用空字符串
答案 3 :(得分:0)
例如,如果没有记录,则可以使用ng ifs显示不同的内容:
<div *ngIf="record">
<h1 *ngIf="record.landlord">{{record.landlord.name}}</h1>
<h1 *ngIf="record.agent">{{record.agent.name}}</h1>
</div>
您可以找到更多信息/ docs here