2016-02-07 20 views
7

Ho un'applicazione che utilizza vue.js. Genero un elenco di risultati usando v-for in una matrice di oggetti. quando aggiorno l'oggetto all'interno dell'elemento nth in array, usando underscore _.extend, la vista del progetto non si aggiorna. C'è una soluzione per questo problema http://vuejs.org/guide/reactivity.html che segnala utilizzare _.extend simili:Vue js problema di reattività durante l'aggiornamento degli oggetti all'interno dell'array utilizzato in v-for

this.results.displayed[key] = _.extend({}, this.results.displayed[key], detail.items); 

ma il problema è quando uso estendono come dire, non aggiorna la vista.

+0

Non ci sono abbastanza informazioni per capire cosa c'è che non va. Riesci a ricreare questo in un violino? –

risposta

8

Vue non è in grado di rilevare la modifica quando si imposta un nuovo elemento in base all'indice di array. Per aggirare questo problema, è possibile utilizzare il metodo $set() che Vue aggiunge all'array.

var newObject = _.extend({}, this.results.displayed[key], detail.items); 
this.results.displayed.$set(key, newObject); 

Ulteriori informazioni here.

+1

Ecco un [jsfiddle] (https://jsfiddle.net/asemahle/0joa6gro/) che dimostra l'uso di. $ Set – asemahle