Ich habe ein eckiges 2 Projekt, in dem ich ein paar Komponenten habe. Eine der Komponenten verfolgt ein Mitglied (das zuvor erwähnte BehaviorSubject) mithilfe eines Abonnements.BehaviorSubject bleibt auf den ursprünglichen Wert zurückgesetzt
Der Wert des BehaviorSubjects wird aktualisiert und verschoben, wenn ein Benutzer auf eine Schaltfläche klickt.
Beim Abonnieren wird jedoch nur der ursprüngliche Wert (also 0) ausgegeben.
Die Navbar-Komponente ist der Abonnent, wo in CountService das BehaviorSubject deklariert ist.
Mein CountService:
@Injectable()
export class CountService {
private count:number;
public countObservable:BehaviorSubject<number>;
public savedItems = { campaigns: [], news: [] };
constructor (private http: Http) {
this.count=0;
this.countObservable = new BehaviorSubject<number>(this.count);
this.countObservable.next(this.count);
}
keep(keepId: string, type: string){
!!this.savedItems[type].length ?
this.savedItems[type].find(i => i == keepId).length ?
console.log('exist') : this.keepInSavedItems(keepId, type)
this.keepInSavedItems(keepId, type);
}
keepInSavedItems(keepId, type){
this.savedItems[type].push(keepId);
this.count++;
this.countObservable.next(this.count);
}
}
Meine Navbar Komponente:
@Component({
selector: 'navbar',
templateUrl: './navbar.component.html',
providers: [ CountService ]
})
export class NavigationbarComponent implements OnInit {
count:number;
constructor(public countService: CountService){
this.count=0;
}
ngOnInit() : void {
this.countService.countObservable.subscribe(count => this.count=count);
}
}
Wie informieren Sie den Wert drücken, das heißt, wie sieht Ihre Click-Methode aussehen? – Alex
Ich schaffte es tatsächlich, es zu lösen, indem ich das beobachtbare statische machte. –