2017-02-06 42 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++; 
     }); 
    } 
} 
}; 

這裏我有拖放,在降,我稱之爲 「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