【发布时间】:2017-05-05 16:44:12
【问题描述】:
我已经附上了我的 angular2 代码片段的 plunker。我想从我的 JSON 中打印一个字段,但无法打印该字段,因为最初我的 Object 是 null 并且它是通过 Promise 填充的。
这是我的组件文件
import {Component, NgModule, OnInit} from '@angular/core'
import {BrowserModule} from '@angular/platform-browser'
class MyData {
xyz : MySubData;
}
class MySubData {
name : string;
}
@Component({
selector: 'my-app',
template: `
<div>
<h2>Hello {{name}}</h2>
{{abc.xyz.name}}
</div>
`,
})
export class App implements OnInit {
abc : MyData = null;
constructor() {
this.name = 'Angular2'
}
ngOnInit() {
setTimeout(() => {
this.abc = new MyData();
this.abc.xyz = new MySubData();
this.abc.xyz.name = "Binita";
}, 2000);
}
}
@NgModule({
imports: [ BrowserModule ],
declarations: [ App ],
bootstrap: [ App ]
})
export class AppModule {}
当我从模板中删除{{abc.xyz.name}} 行时,它运行良好。
我在我的代码中使用了设置超时,因为我从 Promise 获取数据(即异步调用)。
我最初可以理解为abc 是null,我的代码无法找到 abc.xyz.name。但我不想检查任何 if 条件。因为我在 JSON 中有几个属性,并且不可能每个属性都写 if 条件。
在 angularjs 1 的早期,如果 abc 为空,那么它会自动将其替换为空白字符串。我想在 angular2 中做同样的事情。请提出建议。
下面是小插曲
【问题讨论】:
标签: angular angular2-template 2-way-object-databinding