Я работаю с приложением, в котором использую шаблон угловой модели.
Чего я пытаюсь добиться, так это: добавив статью определенного типа, я хочу, чтобы произошло две вещи:
- загрузить газету снова (это обновит модель: модель. Газета);
- после того, как газета загружена, я хочу перезагрузить список статей этого определенного типа (это обновляет модель: model.ArticlesOfSomeType);
По какой-то причине у меня нет свойства списка статей в газете.
У меня есть две наблюдаемые, с которыми я работаю:
artikelAdded$: Observable<{ newspaperId: number, artikelType: string}>;
Метод magazineService.load возвращает Observable <"Газета">. Скажем, например:
load(newspaperId):Observable<Newspaper> {
// observable is created from a Promise of getting the Newspaper
// when the Promise is resolved, here the model.Newspaper is set
}
А также, «reloadArticlesOfType» установит другую часть модели:
reloadArticlesOfType(newspaperId, type) = {
model.ArticlesOfSomeType = GetArticles(newspaperId, type);
}
То, что я пытаюсь сделать, выглядит примерно так:
this.actionCompletedService.artikelAdded$
.pipe(
map(artikelAdded => this.newspaperService.load(artikelAdded.NewspaperId)),
switchMap(loadNewspaper$ => loadNewspaper$)
)
.subscribe(newspaper => this.newspaperService
.reloadArticlesOfType(newspaper.Id, artikelAdded.artikelType));
Конечно, это не работает, потому что у меня нет artikelAdded.artikelType в моем объеме, когда мне это нужно. Я не знаю, как связать мои Observables, чтобы получить то, что я хочу. Я относительно недавно работал с Angular и Observables, поэтому любая помощь приветствуется.
Спасибо!