J'expérimente avec Angular 2 et la mise en cache des valeurs reçues des services backend. J'ai remarqué que je suis arrivé au modèle suivant - en utilisant BehaviorSubject
avec une valeur initiale indéfinie et le filtrer pour reporter l'affichage des contrôles dépendant des valeurs reçues du backend.Angular2 + pratiques de mise en cache
private _lazyValue: BehaviorSubject<ILazyValue> =
new BehaviorSubject<ILazyValue>(undefined);
get lazyValue(): Observable<ILazyValue> {
return this._lazyValue.filter(val => val !== undefined);
}
intérieur modèle:
<div *ngIf="lazyValue | async; else nolv; let lv">
<app-some-control [lazy_value]="lv"></app-some-control>
</div>
<ng-template #nolv>
<span>Loading...</span>
</ng-template>
Question: sont là des raccourcis pour cette expression un peu louche:
this._lazyValue.filter(val => val !== undefined)
Ai-je mauvais usage BehaviorSubject
en quelque sorte?