Angular 6 Firebase получить список из облачного пожарного магазина - PullRequest
0 голосов
/ 29 августа 2018

Я хочу знать, как получить списки из облачного пожарного магазина.

Я загружаю список так:

export interface Data {
  name: string;
  address: string;
  address2: string;
  pscode: string;
  ccode: string;
  name2: string;
}

constructor(private afs: AngularFirestore){
    this.notesCollection = this.afs.collection(`imones`, (ref) => ref.orderBy('time', 'desc').limit(5));
}

  notesCollection: AngularFirestoreCollection<Data>;

//creating item in list (imones)

createItem(){
  this.notesCollection.add(this.busines);
}

Теперь вопрос в том, как получить оттуда все элементы списка?

Это моя попытка:

constructor(private afs: AngularFirestore){
  this.items = this.notesCollection.valueChanges();
}
  items: Observable<Data[]>;

HTML:

 <p *ngFor="let item of items">{{item.name}}</p>

ОШИБКА:

Ошибка: не удается найти другой объект поддержки [[объект]] типа «объект». NgFor поддерживает только привязку к Iterables, таким как Массивы.

Снова ошибка:

enter image description here

1 Ответ

0 голосов
/ 29 августа 2018

Вы пытаетесь перебрать наблюдаемое. цикл *ngFor позволяет выполнять итерации только для итераций (массивов, множеств)

У вас есть 2 варианта:

  1. Используйте встроенную async трубу , чтобы перебрать наблюдаемое. например:

    <p *ngFor="let item of items | async">{{item.name}}</p>

  2. Подпишитесь на наблюдаемую и обновите переменную с последним результатом из нее (наблюдаемым результатом в вашем случае является массив):

    this.notesCollection.valueChanges()
                        .subscribe((items) => this.items = items);
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...