Passando attraverso la documentazione di Ember.js, non sono in grado di capire come creare modelli annidati. Si supponga che ho il seguente JSON:Come creare modelli nidificati in Ember.js?
App.jsonObject = {
id: 1812,
name: 'Brokerage Account',
positions: [
{
symbol: 'AAPL',
quantity: '300'
},
{
symbol: 'GOOG',
quantity: '500'
}
]
}
Se creo un oggetto del modello come questo
App.account = Ember.Object.create(App.jsonObject);
solo le proprietà di alto livello (id e nome) ottenere legato a modelli, la matrice posizioni nidificati fa non essere legato correttamente Di conseguenza l'aggiunta, l'eliminazione o l'aggiornamento delle posizioni non influisce sul display. Esiste un modo manuale o automatico per trasformare l'array delle posizioni in modo che sia rilegato (simile a ObservableCollection in WPF)?
Ho creato un jsfiddle per sperimentare questo: http://jsfiddle.net/nareshbhatia/357sg/. Come puoi vedere, le modifiche alle proprietà di livello superiore si riflettono nell'output, ma non tutte le modifiche alle posizioni lo sono. Apprezzerei molto ogni suggerimento su come farlo.
Grazie.
Naresh
Edit: La situazione ideale sarebbe se Ember.js potesse in qualche modo di analizzare il mio feed JSON in oggetti Ember.js nidificate. Ad esempio, cosa succede se definisco esplicitamente le mie classi come segue, in modo che aiuti Ember.js a creare gli oggetti giusti?
App.Account = Ember.Object.extend({
id: null,
name: null,
positions: Ember.ArrayProxy.create()
});
App.Position = Ember.Object.extend({
symbol: null,
quantity: null,
lastTrade: null
});
App.account = App.Account.create(App.jsonObject);
Il mio obiettivo finale è quello di visualizzare tale struttura in una griglia gerarchica che può espandersi/compressione a livello di account. Venendo dal mondo WPF/Silverlight, è abbastanza facile fare qualcosa di simile. Tutto quello che devi fare è specificare un modello annidato per la griglia in XAML e sa come interpretare il tuo modello. È possibile trovare un esempio here - non è troppo difficile da seguire. Mi chiedo se qualcosa di simile sia possibile in Ember.js.
Non ho molta familiarità con WPF o con i suoi controlli (non ho funzionato in quasi 4 anni), ma sembra che qualcosa del genere non dovrebbe essere così male da implementare in Ember & Handlebars. –