【发布时间】:2017-01-15 10:17:04
【问题描述】:
我正在开发一个 angular2 项目,该项目使用新的 Observable 框架从 api 异步获取对象。
this._accountsService.getAccountDetails(this.id)
.subscribe(
AccountDetails => this.accountDetails = AccountDetails,
err => this.errorMessage = <any>err,
() => console.log(this.accountDetails)
);
当我们尝试使用插值 {{AccountDetails.UserName}} 访问该对象的属性时,我们收到了一个属性未定义错误,因为尚未从 api 接收到该对象。我们通过在类中实例化对象来解决这个问题
accountDetails: AccountDetails = new AccountDetails();
这可行,但是我注意到在 Angular 1 中,如果对象未定义,则会创建一个假对象,这样就永远不会出现未定义的错误——它只会在插值代码中显示一个空值.这是Angular2的变化吗?另外,我注意到当我们在代码中使用 *ngFor 来遍历对象的属性时,如果尚未从 api 接收到对象,它将显示一个空值(而不是触发对象未定义错误)。这是 *ngFor 指令内部发生的事情吗?
【问题讨论】:
标签: angularjs angular angular2-template