开发者问题收集

从服务器获取数据之前,“无法读取未定义的属性‘名称’”

2018-11-08
185

我的 html

<input name="name" [(ngModel)]="address.name" matInput >

和我的 ts 如下

  public address: Address;

  ...

  ngOnInit() {
    this.service.getAddress(1).subscribe(address => {          
      this.address = address;
    });
  }

我的界面看起来像

export interface Address {
  ...
  name: string;
}

当我尝试填充输入时,我收到错误:

TypeError: Cannot read property 'name' of undefined

我知道发生这种情况是因为 address 对象在 subscribe 方法中填充之前为空。我该如何摆脱这个错误?

2个回答

如果您想考虑这一点,请尝试使用 any 作为可选类型,然后将 {}code> 分配给 address

public address: (Address | any) = {};
SiddAjmera
2018-11-08

按如下方式初始化为空对象,

public address = new Address();

或者在模板中使用 *ngIf(脏),

<input name="name" *ngIf="address" [(ngModel)]="address.name" matInput >

并且是 export class Address {...>

Sajeetharan
2018-11-08