为什么找不到 Typescript 变量长度?
2017-11-11
221
在 Angular 5 项目中,我在以下内容中:
inventory.component.ts:
inventoryItems: any;
constructor(private router: Router,) {
}
ngOnInit() {
this.inventoryItems=[];
}
我在
inventory.component.html
中引用了这样的变量:
<span class="indicator">{{inventoryItems.length}}</span>
浏览器控制台正在抱怨:
ERROR TypeError: Cannot read property 'length' of null
如果该属性在 ngOnInit 中初始化,为什么它会为空?它应该是零。
2个回答
尝试添加
*ngIf="inventoryItems"
<span *ngIf="inventoryItems" class="indicator">{{inventoryItems.length}}</span>
Sajeetharan
2017-11-11
在第一次模板初始化时它为
null
,因为
ngOnInit
是在调用第一个
ngOnChanges
之后调用的,这会最初设置 props。
检查文档
您可以实现
OnChanges
(并手动处理所有 props 输入更改),或者您可以像这样设置默认值,例如
inventoryItems: any[] = [];
b3da
2017-11-11