NgFor поддерживает только привязку к итерациям, таким как массивы.(IONIC4) - PullRequest
0 голосов
/ 23 февраля 2019

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

мой код: detail.page.ts

export class DetailsPage implements OnInit {
  id: string;

  news2: any;

  constructor(private router: ActivatedRoute, private afs: AngularFirestore) {

   }

  ngOnInit() {
    this.id = this.router.snapshot.paramMap.get('id');
    console.log(this.id);
   this.news2 = this.afs.collection('123').doc(this.id).snapshotChanges()
.subscribe(data => {
console.log(data);
});
}

details.page.html

<ion-content padding *ngFor="let hero of news2">
 {{hero.title}}


</ion-content>

Ответы [ 2 ]

0 голосов
/ 23 февраля 2019

Вы можете использовать keyvalue pipe

<div *ngFor="let pair of obj | keyvalue">
  <p>Object key: {{pair.key}}</p>
  <p>Object value: {{pair.value}}</p>
</div>
0 голосов
/ 23 февраля 2019

Angular целенаправленно не поддерживает итерацию по свойствам объекта с *ngFor, потому что нет контракта на упорядочение, как у массивов - это означает, что упорядочение списка может быть несовместимым при рендеринге представления.Я бы предложил изменить ваш AngularFirestone API, чтобы он возвращал Array как news2 вместо object, чтобы обеспечить гарантированный контракт на заказ.

...