Skip to content

Commit 0f6f2bf

Browse files
authored
docs(afs): cleaning up the AFS dynamic querying example and adding loader
1 parent 2cd22e0 commit 0f6f2bf

File tree

1 file changed

+18
-10
lines changed

1 file changed

+18
-10
lines changed

docs/firestore/querying-collections.md

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -81,21 +81,30 @@ size$.next('small');
8181

8282
```ts
8383
import { Component } from '@angular/core';
84-
import { AngularFirestore, AngularFirestoreCollection } from 'angularfire2/firestore';
84+
import { AngularFirestore } from 'angularfire2/firestore';
8585
import { Observable } from 'rxjs/Observable';
8686
import { BehaviorSubject } from 'rxjs/BehaviorSubject';
87-
import { Subscription } from 'rxjs/Subscription';
8887
import 'rxjs/add/operator/switchMap';
8988
import 'rxjs/add/observable/combineLatest';
9089

90+
export interface Item {
91+
text: string;
92+
color: string;
93+
size: string;
94+
}
95+
9196
@Component({
9297
selector: 'app-root',
9398
template: `
94-
<ul>
95-
<li *ngFor="let item of items | async">
96-
{{ item.text }}
97-
</li>
98-
</ul>
99+
<div *ngIf="items$ | async; let items; else loading">
100+
<ul>
101+
<li *ngFor="let item of items">
102+
{{ item.text }}
103+
</li>
104+
</ul>
105+
<div *ngIf="items.length === 0">No results, try clearing filters</div>
106+
</div>
107+
<ng-template #loading>Loading&hellip;</ng-template>
99108
<div>
100109
<h4>Filter by size</h4>
101110
<button (click)="filterBySize('small')">Small</button>
@@ -117,15 +126,14 @@ import 'rxjs/add/observable/combineLatest';
117126
`,
118127
})
119128
export class AppComponent {
120-
items: Observable<AngularFireAction<firebase.firestore.DataSnapshot>[]>;
129+
items$: Observable<Item[]>;
121130
sizeFilter$: BehaviorSubject<string|null>;
122131
colorFilter$: BehaviorSubject<string|null>;
123-
filter$: Observable<[string, string]>;
124132

125133
constructor(afs: AngularFirestore) {
126134
this.sizeFilter$ = new BehaviorSubject(null);
127135
this.colorFilter$ = new BehaviorSubject(null);
128-
this.items = Observable.combineLatest(
136+
this.items$ = Observable.combineLatest(
129137
this.sizeFilter$,
130138
this.colorFilter$
131139
).switchMap(([size, color]) =>

0 commit comments

Comments
 (0)