Я новичок в Angular 2, и мне грозит проблема с асинхронным HTTP-запросом и привязкой к интерполяции.
Здесь мой компонент:
@Component({
selector: 'info',
template: `<h1>{{model.Name}}</h1>`
})
export class InfoComponent implements OnInit {
model: any;
constructor(
private _service: BackendService
) { }
ngOnInit() {
if (this.model == null) {
this._service.observableModel$.subscribe(m => this.model = m);
this._service.get();
}
}
}
Когда шаблон визуализируется, я получаю сообщение об ошибке, потому что "модель" еще не установлена.
Я решил проблему с этим очень уродливым взломом:
@Component({
selector: 'info',
template: `
<template ngFor #model="$implicit" [ngForOf]="models | async">
<h1>{{model.Name}}</h1>
</template>
`
})
export class NeadInfoComponent implements OnInit {
models: Observable<any>;
constructor(
private _service: BackendService
) { }
ngOnInit() {
if (this.models == null) {
this._service.observableModel$.subscribe(m => this.models = Observable.of([m]));
this._service.get();
}
}
}
Мой вопрос: как отложить отрисовку шаблона до завершения моего HTTP-вызова или как интерполировать значения "модели" непосредственно в шаблоне без привязки к другому компоненту?
Спасибо!