Perché il modello non viene aggiornato quando cambio la proprietà che sta visualizzando? Lo documentation afferma che {{each}}
è compatibile con le associazioni, ma ovviamente non ne sono a conoscenza.Ember, il mio modello non si aggiorna sulle modifiche delle proprietà
Come tutto in Handlebars, l'helper {{#each}} è associato alle associazioni. Se l'applicazione aggiunge un nuovo elemento all'array, o rimuove un oggetto, il DOM verrà aggiornato senza dover scrivere alcun codice.
Ecco il mio controller
App.MaintemplateController = Ember.Controller.extend({
alist: ['foo', "bar"],
actions : {
addel: function(){
this.alist.push('xpto');
console.log(this.alist);
}
}
});
Nel mio modello ho il seguente codice.
{{#each alist}}
<li>{{.}}</li>
{{/each}}
<button {{action 'addel'}}>Add element</button>
i dati vengono correttamente resa, e quando si fa clic sul pulsante lo fa aggiungere elementi alla proprietà, ma il modello non viene aggiornata. Perché? Come faccio a tenerlo sincronizzato con i miei dati?
Questo risponde alla mia domanda e risolve questo problema. Tuttavia speravo che esistesse una soluzione che avrebbe funzionato indipendentemente dal tipo di dati. Cosa faccio se al posto di un semplice array ho un oggetto complesso e ho bisogno di utilizzare l'assegnazione per aggiornare alcune delle sue proprietà interne? – Pico
@Pico, felice di poterti aiutare. Bene, nel caso di un oggetto più complesso, scendi l'albero degli oggetti e imposta le sue proprietà, come: 'this.get ('complexObject.childOne.childTwo'). Set ('name', 'foo');' ha senso? – intuitivepixel
Sì, grazie. – Pico