分页的Vue错误:未定义响应

时间:2019-07-15 07:55:41

标签: ajax laravel vue.js pagination axios

我不断收到此Vue错误:“ ReferenceError:未定义响应” ,但是当我在控制台中签到时,数据就在那里了。

Console Picture

我打算使用响应中的数据进行分页。预先感谢。

方法

getAllUserData(){
    let $this=this;
    axios.get('api/members/getAllMembersData').then(response=>this.members=response.data.data);
    $this.makePagination(response.meta,response.links);
},

makePagination(meta,links){
    let pagination={
    current_page:meta.current_page,
    last_page:meta.last_page,
    next_page_url:links.next,
    prev_page_url:links.prev
    }
    this.pagination = pagination;
}

2 个答案:

答案 0 :(得分:0)

您的响应仍在axios get方法内部,因此必须在axios方法内部(在.then()内部)调用makePagination函数

getAllUserData(){
    let $this=this;
    axios.get('api/members/getAllMembersData').then(response=>
    this.members=response.data.data
    $this.makePagination(response.data.meta,response.data.links);
},

makePagination(meta,links){
    let pagination={
    current_page:meta.current_page,
    last_page:meta.last_page,
    next_page_url:links.next,
    prev_page_url:links.prev
    }
    this.pagination = pagination;
}

答案 1 :(得分:0)

axios.get()是一个异步功能。在ajax请求完成之后,将不会执行此函数之后的代码,但会在此之前执行很长时间。因此,变量response尚不存在。

ajax调用完成后必须执行的所有代码都必须放在调用的.then()函数中。

getAllUserData(){
    axios.get('api/members/getAllMembersData').then(response => {
        this.members = response.data.data;
        this.makePagination(response.data.meta, response.data.links);
    });
},