具有接口的属性未定义?

时间:2017-12-25 19:08:14

标签: angular

我有两个界面:

customer.interface.ts

export interface Customer{
  name?:string;
  customerinfo?:CustomerInfo;
}

customerinfo.interface.ts

export interface CustomerInfo{
  code?:number;
}

在HTML中我有这个:

<input [ngModel]="customer.customerinfo.code">

问题是我得到一个错误,即customerinfo未定义。有什么建议吗? 如果我添加customerinfo是可选的,为什么我有这个问题?

1 个答案:

答案 0 :(得分:1)

首先有两个问题,它应该是带有安全导航操作符的 [(ngModel)]

<input [(ngModel)]="customer?.customerinfo?.code">

您还需要初始化组件中的对象客户。

customer : Customer = {};

修改

由于您从API获取数据,因此有时cusotmer将被定义为异步,因为它以异步方式返回值,使用如下所示的安全导航操作符

<input [(ngModel)]="customer?.customerinfo?.code">