Winkel-Service mit dem Betreff Beobachtbaren Aufruf von next() ist nicht ersichtlich Komponente Abonnements

Möchte ich abrufen einer aktualisierten Objekt-Wert (Kreditnehmer) von schräg-Dienst. Ich habe eine RxJS Subject im Dienst, so dass mehrere Komponenten können ihn abonnieren und erhalten Sie den aktualisierten Wert.

Wenn ich lese das Thema durch die erbrachte Leistung in der Komponente finde ich, dass die onNext() Funktion argument wird nie genannt, auch wenn .next() ist aufgerufen, aus BorrowerService.

Wenn ich es abonnieren, in dem BorrowerService Klasse finde ich, dass .next() funktioniert wie erwartet. Es scheint, dass das Thema ist eine andere Instanz zwischen der Service-Klasse, die Aufrufe .next() und die Komponente, und also nicht, dass Abonnement.

Ist dies ein Versagen im Verständnis Eckige Dienstleistungen oder Observablen? Wie kann ich aktualisieren Sie den Wert in der Service-und passiv erhalten die änderungen in der Komponente, ohne es zu wissen, Wann der Anruf .next()?

Kreditnehmer-Bericht.Komponente.ts

@Component({
    ...
    providers:   [BorrowerService]
})
export class BorrowerReport {
    private borrower: Borrower;

    constructor(private borrowerService: BorrowerService) {
        this.borrowerService.borrowerChanged.subscribe(borrower => {this.borrower = borrower});
    }
}

Kreditnehmer.service.ts

@Injectable()
export class BorrowerService {
    public borrowerChanged: Subject<Borrower> = new Subject<Borrower>();

    //event handler
    selectBorrower(borrower: Borrower) {
        this.borrowerChanged.next(borrower);
    }
}
InformationsquelleAutor MattTreichel | 2017-10-06
Schreibe einen Kommentar