I am creating an experimental application (Ionic 2) that uses Firebase and AngularFire2 (currently in alpha). For this, I follow this guide from Aaron Saunders as a basis:
http://www.clearlyinnovative.com/integrating-firebase-with-angularfire2-into-angular2-ionic2-part-2 https://github.com/aaronksaunders/ionic2-angularfire-sample
Below are my home.ts and my home.html.
this.projects = af.list('/items').map( (items) => { return items.map( item => { item.meta = af.object(`/item_meta/${item.$key}`) return item }) })
This method of nesting Observables AngularFire2 returns was demonstrated in the following presentation: https://youtu.be/ngnSOTSS8Q8?t=1h6m37s
Here is my view:
<ion-card *ngFor="#item of items | async"> <ion-card-header> {{item.name}} </ion-card-header> <ion-card-content> {{item.description}} <br> {{item.meta.stockPrice | async}} </ion-card-content> </ion-card>
The main difference from the example in the presentation I presented is that I nested the "object" observed inside the "list / array" of the Observable. Instead, they add the list to the list. The consequence of this is that I am trying to do {{item.meta.stockPrice}} in my opinion directly, and not nested ngFor.
Here's what my data looks like:
{ "items": { "item1":{ "name": "Item 1", "description": "1234" }, "item2":{ "name": "Item 2", "description": "abcd" } } "items_meta"{ "item1":{ "stockPrice": 1234, "moarData": "derp" }, "item2":{ "stockPrice": 386, "moarData": "lolz" } } }
I cannot understand why the object does not want to render. If I output it to JSON, it shows that there is data. Note that I am new to Angular2 and still enveloping changes with Angular1. What am I doing wrong?
Edit: I updated the information above and added my data structure to make it more understandable.