Mam komponent, który jest zależny od asynchronicznie pobranego obiektu. Istnieją również komponenty potomne w szablonie, które opierają się na niektórych danych z tego samego obiektu.Angular2 Async Data Issue
Problem, który mam, wydaje się być klasycznym warunkiem wyścigowym, ale nie jestem wystarczająco zaznajomiony z Angular 2, aby zrozumieć rozwiązanie.
Weź to na przykład:
export class SampleComponent {
constructor(service: SomeService) {
this.service = service;
this._loadData();
}
private _loadData() {
this.service.getData().subscribe(data => this.data = data);
}
}
Ale w szablonie mam komponenty podrzędne do wyświetlenia niektórych części this.data
:
<taglist tags="data?.tags"></taglist>
Teraz Komponent dla taglist
wyglądał:
@Component({
selector: 'taglist',
directives: [NgFor],
inputs: ['tags'],
template: `<span *ngFor="#tag of tags">{{ tag }}</span>`
})
export class TagList {
public tags: Array<string> = [];
constructor() {
//
}
}
Ponieważ wprowadzono znaczniki wejściowe z załadowanego asynchronizowanego zestawu danych, którego nie ma, gdy zainicjowano komponent znacznika. Co mogę zrobić, aby po załadowaniu this.data
składniki podrzędne, które z niego korzystają, automatycznie uzyskają dostęp do nowo załadowanych danych?
Dziękuję za wszelkie informacje, które możesz mi podać!
więc próbowałem tego wcześniej, I kiedy mam console.log chage ['tags']. currentValue wypisuje ciąg 'data? .tags' zamiast wartości oszacowanej:/ –
Rozumiem. Użyj ' ' lub ' ' –
Awesome, spróbuję tego za minutę tutaj. Dzięki za wskaźniki –