Guten Tag Leute, Ich habe diese verrückte Idee, Service als Cache-Speicher zu verwenden. deshalb habe ich im Service nur wenige Variablen definiert. Die Daten werden im Dienst aktualisiert, Änderungen werden jedoch nicht in der Ansicht angezeigt. Die View wird bereits ausgefüllt und der Service-Layer wird anschließend ausgeführt. Ich bin mir nicht sicher, auch wenn es eine gute Idee ist, Daten im Dienst zu speichern. kann jemand bitte Licht darauf werfen. hier ist mein Service-Code:Angular 2 - Variable in Service definiert, nicht in Sicht
categories : SelectItem[]=[];
constructor(private utilityService:UtilityService) {
}
//populate all drop downs array with initial data from db
populateAll() {
//get categories
this.getCategories();
//there are lot more calls here
}
private getCategories() {
if(this.categories.length==0){
this.utilityService.getAllCategories().subscribe(cat=>{
this.categories =
this.utilityService.getSelectItemPublished(cat,"Category");
})
}
}
Dies ist, wie ich es in der Komponente nennen
constructor(
private cache:CacheStoreService,
) { }
ngAfterViewInit()
{
this.categories=this.cache.categories;
this.depts=this.cache.depts;
this.focuses=this.cache.depts;
this.statuses=this.cache.statuses;
this.phases=this.cache.statuses;
this.visibilities=this.cache.visibilities;
}
ngOnInit() {
this.cache.populateAll();
Ihre Hilfe schätzen. Eine weitere Frage: Wie kann ich die Service-Möglichkeiten aktualisieren, wenn neue Daten in db-update den Cache hinzugefügt werden. ** Ich weiß, ich kann beobachtbar zurückkehren und es in Komponente abonnieren. Ich sehe anders aus. Nicht sicher, wenn es möglich ist? **
Danke
Es ist schwer mit dem gegebenen Code zu sagen, aber in Ihrem Subskriptionsblock in der Komponente sieht Ihr nächster Rückruf so aus, als würde er eine andere Funktion aufrufen. Machst du deine Ergebnisse dort richtig? Wenn diese Funktion eine andere Observable zurückgibt, können Sie die asynchrone Pipe in Ihrer Vorlage verwenden. Was Ihre zweite Frage anbelangt, glaube ich, dass Sie eine Art Echtzeit-Datenbanklösung benötigen würden. –
Ich weiß, ich kann eine Rückkehr beobachtbar machen und es in Komponente abonnieren. Ich sehe anders aus. Nicht sicher, wenn es möglich ist? – leo