У меня есть компонент, который зависит от асинхронного объекта. В шаблоне также есть дочерние компоненты, которые полагаются на некоторые данные этого же объекта.Angular2 Async Data Issue
Проблема, с которой я столкнулась, кажется классическим состоянием гонки, но я недостаточно знаком с Angular 2, чтобы понять решение.
Возьмите это, например:
export class SampleComponent {
constructor(service: SomeService) {
this.service = service;
this._loadData();
}
private _loadData() {
this.service.getData().subscribe(data => this.data = data);
}
}
Но в шаблоне, у меня есть дочерние компоненты для отображения определенных частей this.data
:
<taglist tags="data?.tags"></taglist>
Теперь компонент для taglist
выглядит примерно так:
@Component({
selector: 'taglist',
directives: [NgFor],
inputs: ['tags'],
template: `<span *ngFor="#tag of tags">{{ tag }}</span>`
})
export class TagList {
public tags: Array<string> = [];
constructor() {
//
}
}
Поскольку ввод тегов принимается из набора данных, загруженного асинхронным способом, его нет, когда компонент тега инициализирован. Что я могу сделать, чтобы при завершении загрузки this.data
субкомпоненты, которые его используют, будут автоматически получать доступ к вновь загруженным данным?
Благодарим за понимание, которое вы можете мне предоставить!
Так что я попробовал это раньше, И когда я console.log chages ['tags']. currentValue печатает строку «data? .tags» вместо оцененного значения:/ –
Я вижу. Используйте ' ' или ' ' –
Удивительно, я попробую это через минуту здесь. Спасибо за указатели –