2017-02-06 26 views
1

Я работаю с Laravel + spark + vue js.

клинка файл

<draggable class="col-md-12" :list="emergencies" :element="draggableOuterContainer" @end="onEnd"> 

Js файл

import draggable from 'vuedraggable' 
module.exports = { 
data() {   
    return { 
     emergencies:[] 
    }; 
}, 
components: { 
    draggable, 
}, 
created() { 
    this.getEmergencies(); 
}, 
methods: { 
    getEmergencies() { 
     this.$http.get('/ajax-call-url') 
      .then(response => { 
       this.emergencies = response.data; 
      }); 
    },   
    onEnd: function(evt){ 
     var counter = 1; 
     this.emergencies.forEach(function(user, index) { 
      this.$http.get('/ajax-call-url/') 
      .then(response => { 
      });  
      counter++; 
     }); 
    } 
} 
}; 

Здесь я перетащить и падения, на Drop, я называю функцию "OnEnd" и получать следующее сообщение об ошибке.

TypeError: this is undefined

Здесь this.emergencies.forEach работает, но он дает ошибку на этом. $ Http.get

Любые предложения, какие могут быть решения?

ответ

3

Вместо того, чтобы использовать синтаксис функции, использовать функции со стрелками, а объем этого изменения внутри функции:

onEnd: function(evt){ 
    var counter = 1; 
    this.emergencies.forEach((user, index) => { 
     this.$http.get('/ajax-call-url/') 
     .then(response => { 
     });  
     counter++; 
    }); 
} 

Проверить this для объяснения.

+0

Спасибо, что сработало – Jass