Angular 5, связывающий между компонентами через сервис

Gabriel спросил: 03 февраля 2018 в 10:51 в: angular

Я работаю над программой 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();
}

И соответственно (это один из init):

ngOnInit() {
  this.candidatesService.listCandidates().subscribe(candidates => this.candidates = candidates);
}

Поэтому, я не могу знать, когда обновляется api, я хочу обновить список после того, как метод saveCandidate () принимает меры.

Как обновить один компонент с новыми данными api после другой представлен в сервисе?

Боковое примечание: я попытался использовать rxjs Subject.asObservable (). next (.. http-запрос). Но Observable.next не метод. Возможно, я использовал их неправильно.


0 ответов