я работаю над приложением Angular 5, и у меня есть API, в котором хранятся мои данные. Дело в том, что у меня есть два компонента: один для отображения данных, а другой для публикации данных.
Оба они взаимодействуют с API через сервис с двумя функциями:
addCandidate(candidate: Candidate): Observable<Candidate> {
this.candidatesList.next(this.http.get(this.apiUrl));
return this.http.post<Candidate>(this.apiUrl, candidate, httpOptions);
}
listCandidates(): Observable<Candidate[]> {
return this.http.get(this.apiUrl).map(res => <Candidate[]>res);
}
Компоненты имеют методы для подписки на сервис:
saveCandidate(): void {
if(this.candidate.skills.indexOf(', ') >= 0) {
this.candidate.skills = (<string>this.candidate.skills).split(', ');
}
this.candidatesService.addCandidate(this.candidate).subscribe();
}
И соответственно (это на инициализации):
ngOnInit() {
this.candidatesService.listCandidates().subscribe(candidates => this.candidates = candidates);
}
Итак, поэтому я не могу точно знать, когда API обновляется, я хочу обновить список после того, как метод saveCandidate() примет меры.
Как обновить один компонент новыми данными API после того, как другой отправлен в службу?
Примечание: я пытался использовать rxjs Subject.asObservable().next(..запрос http). Но Observable.next — это не метод. Возможно, я неправильно их использовал.