如何解决" Uncaught TypeError:无法读取属性' get'未定义"? (Vue.JS 2)

时间:2017-03-12 06:25:09

标签: javascript vue.js laravel-5.3 vuejs2 vue-component

我的组件是这样的:

methods: {
    reloadMessage() {
        setTimeout(function () {
            this.$http.get(window.BaseUrl + '/message/inbox');
        }, 1500);
    }
} 

我的路线是这样的:

Route::group(['prefix' => 'message','as'=>'messeage.'],function(){
    Route::get('inbox', ['as'=>'inbox','uses'=>'MessageController@index']);
});

执行代码时,会出现如下错误:

  

未捕获的TypeError:无法读取属性' get'未定义的

我该如何解决?

1 个答案:

答案 0 :(得分:3)

你失去了背景, 使用bind:

methods: {
    reloadMessage() {
        setTimeout(function () {
            this.$http.get(window.BaseUrl + '/message/inbox');
        }.bind(this), 1500);
    }
} 

或箭头功能:

methods: {
    reloadMessage() {
        setTimeout(() => this.$http.get(window.BaseUrl + '/message/inbox'), 1500);
    }
}