2016-07-19 110 views
5

Sto ottenendo il 'non può leggere di proprietà semplice pressione di non definito' errore: Ecco il mio codice vueJs:VueJS: Uncaught (nella promessa) TypeError: non può leggere proprietà 'push' di indefinito

data:{ 
CoIsignedListUID:[] 
} 
methods:{ 

fetchCoISigned: function() { 
      this.$http.get('/cimsm/public/api/fetchCoIsigned/' + this.conflictofInterest.complaintID).then(function (response) { 
       var data = response.data; 
       this.$set('CoIsignedList', data); 
       data.forEach(function (detail) { 
        this.CoIsignedListUID.push(detail.uID); 
       }); 
      }); 

Che cosa sono io fare male? Grazie

+0

Prova questo: 'questo $ data.CoIsignedListUID.push' invece di' this.CoIsignedListUID.push' – Maraboc

risposta

6

this.CoIsignedListUID non è definito

probabilmente perché this non è il this si pensa che è

si dovrebbe fare

var _this = this 

di fuori della funzione e poi

_this.CoIsignedListUID.push(detail.uID); 

Alternativel y, è possibile utilizzare la sintassi della freccia ES2015.

Invece di:

.then(function (response) {} 

Usa:

.then((response) => {} 

Il 'questo' è ora disponibile all'interno della funzione quindi non c'è bisogno di creare una nuova variabile. Tutti i dettagli Here.

+0

che ha funzionato grazie –

0

this nel callback forEach non è il vue.js this. puoi farlo per risolvere questo problema.

this.$http.get("...").then(function(response){ 
    var data = response.data; 
    this.$set('CoIsignedList', data); 
    var that = this; 
    data.forEach(function (detail) { 
     that.CoIsignedListUID.push(detail.uID); 
    }); 
}); 
+0

Grazie che si avvicinano opere. –