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 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图2.0 版本点聚合中Marker的位置无法实时更新,如何解决呢?
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题