@@ -204,15 +204,16 @@ itemsRef.remove();
204
204
import { Component } from ' @angular/core' ;
205
205
import { AngularFireDatabase , AngularFireList } from ' angularfire2/database' ;
206
206
import { Observable } from ' rxjs/Observable' ;
207
+ import ' rxjs/add/operator/map' ;
207
208
208
209
@Component ({
209
210
selector: ' app-root' ,
210
211
template: `
211
212
<ul>
212
213
<li *ngFor="let item of items | async">
213
214
<input type="text" #updatetext [value]="item.text" />
214
- <button (click)="updateItem(item.$ key, updatetext.value)">Update</button>
215
- <button (click)="deleteItem(item.$ key)">Delete</button>
215
+ <button (click)="updateItem(item.key, updatetext.value)">Update</button>
216
+ <button (click)="deleteItem(item.key)">Delete</button>
216
217
</li>
217
218
</ul>
218
219
<input type="text" #newitem />
@@ -225,7 +226,10 @@ export class AppComponent {
225
226
items: Observable <any []>;
226
227
constructor (db : AngularFireDatabase ) {
227
228
this .itemsRef = db .list (' messages' );
228
- this .items = this .itemsRef .valueChanges ();
229
+ // Use snapshotChanges().map() to store the key
230
+ this .items = this .itemsRef .snapshotChanges ().map (changes => {
231
+ return changes .map (c => ({ key: c .payload .key , ... c .payload .val () }));
232
+ });
229
233
}
230
234
addItem(newName : string ) {
231
235
this .itemsRef .push ({ text: newName });
0 commit comments