Sto costruendo un'app sperimentale (Ionic 2) che utilizza Firebase e AngularFire2 (attualmente in alpha). Per questo sto seguendo questo tutorial da Aaron Saunders come base:Osservazioni annidate in Angular2 utilizzando AngularFire2 non rendering in vista
http://www.clearlyinnovative.com/integrating-firebase-with-angularfire2-into-angular2-ionic2-part-2 https://github.com/aaronksaunders/ionic2-angularfire-sample
Qui di seguito sono i miei home.ts e la mia home.html.
this.projects = af.list('/items').map((items) => {
return items.map(item => {
item.meta = af.object(`/item_meta/${item.$key}`)
return item
})
})
Questo modo di nidificazione dei rendimenti osservabili da AngularFire2 è stata dimostrata nel seguente presentazione: https://youtu.be/ngnSOTSS8Q8?t=1h6m37s
Qui è la mia opinione:
<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>
La differenza principale con l'esempio nella presentazione I seguito è il fatto che sto annidando un 'oggetto' osservabile all'interno di un 'elenco/array' osservabile. Invece aggiungono una lista all'interno di una lista. La conseguenza di ciò è che sto cercando di rendere direttamente {{item.meta.stockPrice}} nella mia vista invece di nidificare un ngFor.
Questo è ciò che i miei dati appare come:
{
"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"
}
}
}
io non riesco a capire il motivo per cui oggetto non vuole rendere. Se lo invio a JSON mostra che i dati sono lì. Si prega di notare che sono nuovo di Angular2 e ancora avvolto la mia mente attorno ai cambiamenti da Angular1. Che cosa sto facendo di sbagliato?
Edit: ho aggiornare le informazioni di cui sopra e aggiunto il mio struttura dei dati per renderlo più chiaro
forse sto trascurando qualcosa ma penso che il mio codice sia praticamente lo stesso. Se modifichi il tuo codice su: {{(user.messages.message-id-100.text | async}} funziona? Per me dà un errore, stampandolo come JSON funziona bene, tuttavia ho delle chiavi conosciute (ad esempio: user.lastActivity.name) e devi rendere il valore nella vista come testo (ad esempio: gioco). – DivZero
Ottimo lavoro sui post del blog, è stato un ottimo punto di partenza!Si prega di notare che le cose si stanno rompendo se si tenta di aggiornare. Angular 2 appena spostato in RC, Ionic 2 ha un ramo separato che si sposta su Angular RC e AngularFire è appena entrato in beta (con documenti e query migliori) che richiede l'Angular RC. Tuttavia non giocano ancora bene insieme ;-) – DivZero
cosa stai cercando di fare esattamente ... '(user.messages.message-id-100.text | async}}' non funzionerà perché non è osservabile ... e stai facendo più domande allo stesso tempo che rendono difficile rispondere alla tua domanda ... devi fornire maggiori informazioni sulla struttura dei tuoi dati –