ajax获取json 排序,Vue组件中ajax获取JSON并赋值后对数据变量不能使用sort排序。

问题描述

我在使用axios获取来自服务器的JSON数据后,赋值到 .vue 组件中的数据变量,然后通过methods创建方法来修改 数据变量 的排序,但使用sort()方法并用webpack打包后,sort()方法是生效的,但报错并影响到echats图表生成。

问题出现的环境背景及自己尝试过哪些方法

开发环境是:nodeJS + webpack + vue + axios + echarts

1、尝试了重新解析JSON成字符串再打包成JSON,看看是否是JSON问题,结果并不是。

2、删除了echarts,看看是不是echarts问题,结果只是少了个报错。

3、用新的变量装原数据变量,再使用sort,结果还是一样报sort is not a function。

相关代码

main.vue文件:

销量总表

#名称单价销量

1MarkOtto@mdo2JacobThornton@fat3Larrythe Bird@twitter

//echarts图表插入

import {pie} from './pie.js';

export default{

data(){

return {all_data:""}

},

mounted:function(){

var _self=this;

var myDate=new Date();

if(eval(myDate.getMonth()+1)<10){

var month="0"+eval(myDate.getMonth()+1);

}else{

var month=eval(myDate.getMonth()+1);

}

if(myDate.getDate()<10){

var day="0"+myDate.getDate();

}else{

var day=myDate.getDate();

}

var dateNow=myDate.getFullYear() +'-'+ month +'-'+ day;

var post_date={"dateNow":dateNow};

axios.post('http://127.0.0.1:8080/today',post_date).then(results=>{

_self.all_data=results.data;

}).catch(function(err){console.log(err)});

pie();

},

methods:{

"topOne":function(){

//以下是不可用

console.log(this.all_data);

var JsonA=this.all_data.sort(function(a,b){return b.order_num - a.order_num});

return JsonA[0].order_name;

//以下是新建JSON可用

var JsonB=[{'name','test1','age','12'},{'name':'test3','age':'32'},{'name':'test2','age':'22'}];

return JsonB.sort(function(a,b){return a.age - b.age});

}

}

}

这是Vue中all_data的数据(内容来于服务端返回数据):

bVbmv8y?w=638&h=737

你期待的结果是什么?实际看到的错误信息又是什么?

错误报告如下:

bVbmv7K?w=655&h=611

希望大神们能看到,我已经想了半天,只能上来求助了。谢谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个使用纯 HTML 和 Element UI 的示例,可以通过 AJAX 获取 JSON 数据并将其处理到表格: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>AJAX 获取 JSON 数据并处理到表格</title> <!-- 引入 Element UI 样式文件 --> <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css"> </head> <body> <div id="app"> <el-table :data="tableData" style="width: 100%"> <el-table-column prop="name" label="姓名"></el-table-column> <el-table-column prop="age" label="年龄"></el-table-column> <el-table-column prop="gender" label="性别"></el-table-column> </el-table> </div> <!-- 引入 Vue.js 和 Element UI JavaScript 文件 --> <script src="https://unpkg.com/vue/dist/vue.js"></script> <script src="https://unpkg.com/element-ui/lib/index.js"></script> <script> new Vue({ el: '#app', data: { tableData: [] }, mounted: function() { var self = this; // 使用 AJAX 获取 JSON 数据 var xhr = new XMLHttpRequest(); xhr.open('GET', 'data.json', true); xhr.onload = function() { if (xhr.status === 200) { // 将 JSON 数据处理到表格 self.tableData = JSON.parse(xhr.responseText); } else { console.error(xhr.statusText); } }; xhr.onerror = function() { console.error(xhr.statusText); }; xhr.send(); } }); </script> </body> </html> ``` 在这个示例,我们使用了 Element UI 的 `<el-table>` 组件和 `<el-table-column>` 组件来创建表格,并通过 Vue.js 的数据绑定功能将 JSON 数据处理到表格。我们使用了纯 JavaScript 的 AJAX 技术来获取 JSON 数据,并在获取成功后将其解析成 JavaScript 对象,并将其赋值Vue.js 的 data 的 `tableData` 属性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值