Я хочу использовать keyvalue pipe без получения идентификатора от объекта - PullRequest
0 голосов
/ 13 апреля 2020

Я хочу использовать keyvalue pipe без получения идентификатора от объекта. Как это может быть достигнуто?


        <div *ngFor="let outerObject of outerObject$ | async ;index as i">
                    <div *ngFor="let innerObject of innerObject |  keyvalue">

                    </div>
        </div>

object => включает в себя идентификатор и еще некоторые свойства.

1 Ответ

0 голосов
/ 13 апреля 2020

KeyValuePipe позволяет определить только функцию сравнения для сортировки ключей. Таким образом, вы можете получить геттер в файле TypeScript:

get filteredObject() {
  const { id, ...rest } = this.object;
  return rest;
}

Или даже это:

get filteredObject() {
  return Object.fromEntries(Object.entries(this.object).filter(([key]) => key !== 'id'));
}

А затем в шаблоне:

*ngFor="let myBbject of filteredObject | keyvalue

Редактировать:

Если ваш object взят из Observable (скажем outerObject$), то вы должны выполнить операцию преобразования внутри .pipe(...) следующим образом:

this.outerObject$ = this.someService.someFunction().pipe(
  map(x => x.map(y => Object.fromEntries(Object.entries(y).filter(([key]) => key !== 'id')))));
...