Nodejs axios 如何将后端返回的数据填充 v-charts 里面呢?
Nodejs axios 如何将后端返回的数据填充 v-charts 里面呢?
被折磨一天了,用 axios 请求的数据死活不能填充到 v-charts 里面,代码如下:
<template>
<el-contaner>
<el-header>
<TopBar></TopBar>
</el-header>
<el-main>
<div class="dashbraod">
<ve-pie :data="chartData" :settings="chartSettings"></ve-pie>
</div>
</el-main>
</el-contaner>
</template>
<style>
.dashbraod{
position: relative;
}
</style>
<script>
import TopBar from './Navbar'
import axios from 'axios'
import { Message } from 'element-ui'
export default {
name: 'Console',
data () {
return {
chartData: {
rows: [],
columns: ['id', 'total']
},
chartSettings: {
dimension: 'id',
metrics: 'total'
}
}
},
components: {
TopBar
},
method: {
},
created: function () {
alert('Be mounted')
axios.get('http://localhost/data/Statistic').then(function (res) {
for (let i = 0; i < res.data.length; i++) {
this.chartData.rows.push(res.data[i])
}
}).catch(function (res) {
Message.error(res.toString())
})
alert(this.chartData.rows)
}
}
</script>
请教各位,怎么改才能将 axios 的数据填充到chartData.rows
里面呢?
目测 this,毕竟没写过前端
把 then 后面的 function 换成剪头函数,而且我记得在 created 中是不能修改数据的,要在 mounted 之后
没找到你用的 v-chart…不过我认为此处可以把 v-bind:data="“改成 v-modal=”"
此处写不写箭头函数有影响吗?不过第二句话说得对。
我其实只是想填充一下数据画一个“饼图”,但是似乎只要动态填充就不行 !=_=
const _self = this;
应该可解决问题
问题的重点不是 this 的问题,而是图画不出来…
写箭头函数就是间接的改变了 this 的指向呀
我倒是建议你先尝试下在生命周期函数中先把 this 存入一个变量中,然后操作这个变量看下结果
说句题外话,el-main 在 ie11 下只显示一点点的高度,如何解决的
修改绑定样式 :style
要在Node.js中使用Axios获取后端数据并将其填充到v-charts中,你需要进行以下几个步骤。假设你正在使用Vue.js框架和v-charts库来构建前端应用。
-
安装依赖: 确保你已经安装了axios和v-charts。如果没有,请使用npm或yarn进行安装:
npm install axios v-charts
-
获取数据: 在你的Vue组件中,使用Axios获取后端数据。
<script> import axios from 'axios'; export default { data() { return { chartData: {} }; }, mounted() { axios.get('你的后端API地址') .then(response => { this.chartData = response.data; }) .catch(error => { console.error('Error fetching data:', error); }); } }; </script>
-
使用v-charts渲染图表: 将获取到的数据绑定到v-charts组件上。
<template> <ve-line :data="chartData"></ve-line> </template> <script> import VeLine from 'v-charts/lib/line.common'; export default { components: { VeLine } }; </script>
注意:chartData
的格式需要符合v-charts的要求。通常,这包括一个包含columns
和rows
的对象,其中columns
表示列名,rows
表示数据行。确保后端返回的数据格式与此匹配,或在前端进行适当的转换。