2

私は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++;  
        });
    }
}
};

ここでは、ドラッグ アンド ドロップを行います。ドロップ時に「on​​End」関数を呼び出し、次のエラーが発生します。

TypeError: これは未定義です

ここで this.emergency.forEach は機能していますが、this.$http.get でエラーが発生しています

何か提案、解決策は何ですか?

4

1 に答える 1

4

関数構文を使用する代わりに、アロー関数を使用します。このスコープは関数内で変更されます。

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

説明については、これを確認してください。

于 2017-02-06T09:13:18.557 に答える