在Angular 5项目中,我有以下内容:
inventory.component.ts:
inventoryItems: any;
constructor(private router: Router,) {
}
ngOnInit() {
this.inventoryItems=[];
}
我在inventory.component.html
:
<span class="indicator">{{inventoryItems.length}}</span>
浏览器控制台抱怨:
错误类型错误:无法读取属性&#39;长度&#39;为null
如果属性在ngOnInit中初始化,为什么它会为null?它应该为零。
答案 0 :(得分:1)
尝试添加 *ngIf="inventoryItems"
<span *ngIf="inventoryItems" class="indicator">{{inventoryItems.length}}</span>
答案 1 :(得分:1)
在第一次模板初始化时为null
,因为在调用第一个ngOnInit
之后调用了ngOnChanges
,它最初设置了道具。
check docs
您可以实现OnChanges
(并手动处理所有道具输入更改),或者您可以设置默认值,例如inventoryItems: any[] = [];