zhwillwin 2017-08-02 09:42 采纳率: 0%
浏览 6941

vue使用axios获取接口数据如何封装?

我是一个刚用vue的小菜鸟,使用axios请求接口,想将获取的数据封装到页面上的dataList属性里,可是页面报错了

import MD5 from '../assets/js/MD5Util.js';

export default {
  name: 'awardVue',
    data () {
        return {
          dataList:[],
          str:""
        }
    },
  mounted :function(){
      this.getData();
     },

    methods:{

      getData(){
        const  param=MD5.getPkey(1,10);
        this.$http.get('apis/school/grasslandTransfer/winningStatisticsList', { params:{
          startNum: '1',
          endNum: '10',
          version: param.version,
          platformSource: param.platformSource,
          time: param.time,
          ltime: param.ltime,
          pkey: param.pkey
        } })
          .then(function (response) {
            console.log(response.data);
            this.dataList=response.data.winningStatisticsList;
          })
          .catch(function (error) {
            console.log(error);
          });
      }
    }
}

    这是返回的结果
    Object {msg: "查询成功", code: "1", winningStatisticsList: Array(10)}

award.vue?e9e3:51 TypeError: Cannot set property 'dataList' of undefined
at eval (award.vue?e9e3:48)
at

    可是response.data明明是有数据的啊,json格式,为什么会显示为undefined呢?
  • 写回答

2条回答

  • JesusAllen30 2017-08-02 10:18
    关注
     因为 this 指向已经改变,你需要在函数中定义一个局部的 let _this = this;  然后都使用 _this.dataList 这样子
    
    评论

报告相同问题?

悬赏问题

  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试