Как сохранить первоначальный ответ от наблюдаемого в Angular 6? - PullRequest
0 голосов
/ 25 сентября 2018

Я подписываюсь на заметку, чтобы получить ответ от внешнего API.Затем я выполняю другую функцию фильтрации.Но когда я делаю это, он также фильтрует исходный ответ.Я хочу сохранить исходный ответ, а также получить новый отфильтрованный ответ.Когда я подписываюсь без реализации функции getFilteredEntryByProv, я получаю полный ответ в журнале консоли «Записи заголовка».Как только у меня появилась функция фильтра, «Заголовки записей;Журнал консоли также обновляется ..... Есть предложения?

this.subscription = this.contentfulService.getContentfulEntry(this.headerEntryId, {locale: this.lang.toLowerCase()})
      .subscribe(res => {
      console.log('Header Entries:: ', res);
      this.filteredHeader = this.contentfulService.getFilteredEntryByProv(res, this.prov);
      console.log('Filtered Header:: ', this.filteredHeader);

1 Ответ

0 голосов
/ 26 сентября 2018

В getFilteredEntryByProv вы изменяете сам ответ.provObj.data = _.filter изменяет res.fields.data.

. Вы должны просто вернуть отфильтрованные данные из вашей функции и оставить исходный запрос таким, какой он есть:

public getFilteredEntryByProv = (res, prov: string) => {
    return _.filter(res.fields.data, obj => _.includes(obj.prov, prov));
}
...