Ich habe einen Dienst mit einer Observablen, die über eine Komponente abonniert wird. Dies scheint zu funktionieren, da der Abonnent den Anfangswert anzeigt. Ich habe eine andere Komponente, die dann das Observable aktualisiert, aber der neue Wert wird nicht angezeigt.Angular 4 Subskription für Observable wird nicht aktualisiert nach Änderung
Service:
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/of';
@Injectable()
export class BannerService {
banners$: Observable<any[]> = Observable.of([]);
getBanners(): Observable<any[]> {
return this.banners$;
}
setBanners(banners: any[]): void {
this.banners$ = Observable.of(banners);
}
}
Komponente mit Teilnehmern:
import { Component, ViewEncapsulation, OnInit } from '@angular/core';
import { BannerService } from './../banner/banner.service';
@Component({
selector: '.banner',
templateUrl: './banner.component.html',
styleUrls: ['./banner.component.sass'],
encapsulation: ViewEncapsulation.None
})
export class BannerComponent implements OnInit {
constructor(private bannerService: BannerService){}
ngOnInit() {
this.bannerService.banners$.subscribe(banners => {
console.log(banners);
});
}
}
Komponente mit Setzer:
import { Component, ViewEncapsulation, OnInit } from '@angular/core';
import { BannerService } from './../banner/banner.service';
@Component({
selector: '.home-component',
templateUrl: './home.component.html',
styleUrls: ['./home.component.sass'],
encapsulation: ViewEncapsulation.None
})
export class HomeComponent implements OnInit {
data = {
banners: [
{
title: 'Title 1',
image: '../images/image1.jpg'
},
{
title: 'Title 2',
image: '../images/image2.jpg'
},
{
title: 'Title 3',
image: '../images/image3.jpg'
}
]
}
constructor(private bannerService: BannerService){}
ngOnInit(): void {
this.bannerService.setBanners(this.data.banners);
}
}
Jede Hilfe wäre wirklich zu erkennen ist, habe ich eine Reihe von verschiedenen versucht Dinge und kann es nicht funktionieren.
Ausgabe nicht mit diesem Update zu lösen, kann jemand helfen https://stackoverflow.com/questions/48973734/model-updates-but-angular-ui-does -nicht-render – kasimkha