Я пытаюсь создать систему очередей, в которой у меня есть список «станций», которые я получаю по одному запросу пожарного депо, и в каждом из этих элементов в этом списке я хочу отобразить «проекты», которые в данный момент находятся на этой станции.Конечный результат будет выглядеть примерно так:
station 1
- project 1, project 3, project 5
station 2
- project 2, project 6
station 3
- project 4, project 7, project 8
etc.
Для справки мой HTML-код выглядит следующим образом:
<ul>
<li *ngFor="let shop of shops | async">
{{ shop.StationtName}}
<div *ngFor="let shopProject of shopProjects | async">
{{ shopProject.SKU}}
</div>
</li>
</ul>
Я атаковал эту проблему следующим образом:
this.shopCollection = this.afs.collection('shop', ref => ref.where('station', '==', 'true'))
this.shops = this.shopCollection.snapshotChanges().pipe(
map(actions => actions.map(a => {
const data = a.payload.doc.data() as Shop;
const id = a.payload.doc.id;
console.log(data.StationName);
<///////////// I'm trying to use data.StationName in the next query ///////////>
this.projectCollection = this.afs.collection('shop', ref => ref.where('stationLocation', '==', data.StationtName))
this.shopProjects = this.projectCollection.snapshotChanges().pipe(
map(actions => actions.map(a => {
const data = a.payload.doc.data() as Prod;
const id = a.payload.doc.id;
console.log(data.SKU);
return { id, ...data };
}))
);
return { id, ...data };
}))
);
В результате получается список станций с одним и тем же SKU проекта под каждой записью.
Примерно так:
station 1
- project 8
station 2
- project 8
station 3
- project 8
station 4
- project 8
Я не уверен, что я приближаюсьэто наиболее эффективным способом, любой вклад будет принят хорошо.Заранее спасибо