Probabilmente mi manca qualcosa di veramente stupido, (Ember newbie) ma non riesco a capire come modificare un array che è sotto la gestione del mio controller Ember, oltre a impostare un array completamente nuovo.Come si modificano gli elementi in un array gestito da un controller Ember?
Ad esempio. Ho la seguente funzione di test nel mio controller. Quando l'utente fa clic, voglio modificare ogni elemento dell'array controllato (o potrebbe essere un singolo elemento) con un nuovo valore.
Capisco che si suppone di passare attraverso "set" per apportare le modifiche noti per Ember, così ho pensato che questo avrebbe funzionato:
clickHandler:function(e){
var temp = this.get("itemList").copy(); // copy it
for (var i = 0; i < temp.length; i++) {
temp[i].desc = "CANCELLED"; // change it
}
this.set('itemList', temp); // put it back
}
faccio una copia della matrice, modificarlo, e quindi riportarlo indietro. Ma in qualche modo Ember si lamenta della quarta riga, dove modifico il contenuto di temp [i] .desc, dicendo che devo usare Ember.Set. Supponevo di poter modificare la copia "offline" e quindi di ripristinarla, ma no-go e non riesco a capire perché. Altre operazioni di array, come shift/unshift/pop sembrano funzionare.
Grazie. Voi ragazzi che ci prendete il tempo di istruirci su Stack Overflow sono fantastici. Sfortunatamente, nessuna di queste soluzioni funziona per me. In entrambi i casi viene visualizzato l'errore "Uncaught TypeError: Object #
tuo suggerimento rende completamente senso, non riesco proprio a capire perché non funziona Se utilizzo un ArrayController e la linea: this.get ("content"). SetEach ('desc', "CANCELED"); poi vedo che tutti gli elementi del mio modello vengono ripristinati su "ANNULLATO", quindi so che tutto il resto funziona, ma se uso "forEach", l'"oggetto" che ricevo non accetta una chiamata "set". :^( –
Sono stato molto contento anche io 3 mesi fa, quando le persone mi hanno aiutato a iniziare.Puoi mettere il tuo esempio in un violino? Pubblicherò un link a un modello di braci basico in un paio di minuti – mavilein