*ngFor объект подмассива - Angular + Firebase

Я пытаюсь использовать простой ngFor но я имею дело с одной проблемой.

объект

export class Post {
  $key: string;
  title: string;
  subtitle: string;
  postedBy: string;
  imageUrl: string;
  paragraphs: [] = [];
}

я намерен использовать следующее HTML код:

<p *ngFor="let p of databaseService.selectedPost[0].paragraphs">a</p>

это означает, что я хочу показать один абзац за абзац моего объекта, но я получаю эту ошибку:

ОШИБКА Ошибка: не удается найти другой поддерживающий объект '[object Object]' типа 'object'. NgFor поддерживает только привязку к итерациям, таким как массивы.

Я пытался использовать console.log(this.selectedPost[0].paragraphs.p1); являющийся p1 там первый из моих абзацев, и это на самом деле работает, но я не могу сделать это из HTML (он имеет p1, p2, p3.. как имена). Следующая картинка показывает console.log

Это объект в базе данных:

Как я мог это сделать?

1 ответ

Решение

По звукам вещей, databaseService.selectedPost[0].paragraph это объект, как вы сказали, вы можете получить прямой доступ p1,

Я пытался использовать console.log(this.selectedPost[0].paragraphs.p1); будучи p1 там первым из моих абзацев, и это на самом деле работает

Если это так, вы можете использовать Angular KeyValuePipe для перебора с *ngFor

Рабочий пример будет выглядеть так:

<p *ngFor="let paragraph of databaseService.selectedPost[0].paragraphs | keyvalue">{{ paragraph.value }}</p>
Другие вопросы по тегам