【发布时间】:2020-09-08 03:41:03
【问题描述】:
一段时间以来,我一直在尝试使用 axios 显示来自我的 API 的数据的图表。 API 上使用 axios 的 get 运行良好,但数据未显示在图表上。但是,我按照教程在 chart.js 上加载了 v-if =。
谁能帮助我,因为我真的不明白?
谢谢
这是我的代码:
`<template>
<div class="charts">
<div class="row">
<div class="flex md6 xs12">
<va-card
v-if ="loaded"
class="chart-widget"
:title="$t('charts.verticalBarChart')"
>
<va-chart :data="verticalBarChartData" type="vertical-bar"/>
</va-card>
</div>
<div class="flex md6 xs12">
<va-card
class="chart-widget"
:title="$t('charts.horizontalBarChart')"
>
<va-chart :data="horizontalBarChartData" type="horizontal-bar"/>
</va-card>
</div>
</div>
<div class="row">
<div class="flex md12 xs12">
<va-card
class="chart-widget"
:title="$t('charts.lineChart')"
>
<va-chart :data="lineChartData" type="line"/>
</va-card>
</div>
</div>
<div class="row">
<div class="flex md6 xs12">
<va-card
class="chart-widget"
:title="$t('charts.pieChart')"
>
<va-chart :data="pieChartData" type="pie"/>
</va-card>
</div>
<div class="flex md6 xs12">
<va-card
class="chart-widget"
:title="$t('charts.donutChart')"
>
<va-chart :data="donutChartData" type="donut"/>
</va-card>
</div>
</div>
<div class="row">
<div class="flex md12 xs12">
<va-card
class="chart-widget"
:title="$t('charts.bubbleChart')"
>
<va-chart :data="bubbleChartData" type="bubble"/>
</va-card>
</div>
</div>
</div>
</template>
```
<script>
var dataget
import { getLineChartData } from '../../../data/charts/LineChartData'
import { getBubbleChartData } from '../../../data/charts/BubbleChartData'
import { getPieChartData } from '../../../data/charts/PieChartData'
import { getDonutChartData } from '../../../data/charts/DonutChartData'
// import { getVerticalBarChartData } from '../../../data/charts/VerticalBarChartData'
import { getHorizontalBarChartData } from '../../../data/charts/HorizontalBarChartData'
import axios from 'axios'
```
```
export default {
name: 'charts',
data () {
return {
loaded : false,
bubbleChartData: getBubbleChartData(this.$themes),
lineChartData: getLineChartData(this.$themes),
pieChartData: getPieChartData(this.$themes),
donutChartData: getDonutChartData(this.$themes),
verticalBarChartData: getVerticalBarChartData(this.$themes),
horizontalBarChartData: getHorizontalBarChartData(this.$themes),
}
},
methods: {
refreshData () {
this.lineChartData = getLineChartData(this.$themes)
},
},
// Ajout
async mounted () {
this.loaded = false
try {
axios.get('http://localhost:8080/reading/_size?filter={"device":"Random-Integer-Device"}', {
auth: {
username: 'admin',
password: 'secret'
}
})
.then(function (response) {
//console.log(response.data._size);
dataget = response.data._size;
console.log("SIZE : "+ dataget)
})
this.loaded = true
} catch (e) {
console.error(e)
}
},
// Ajout
}
// this is a test
const getVerticalBarChartData = (themes) => ({
labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
datasets: [
{
label: 'USA',
backgroundColor: themes.primary,
borderColor: 'transparent',
data: null,
},
{
label: 'USSR',
backgroundColor: themes.info,
borderColor: 'transparent',
// It doesn't work here for dataget value
data: [dataget, 10, 22, 39, 15, 20, 85, 32, 60, 50, 20, 30],
},
],
})
// This is a test
</script>
<style lang="scss">
.chart-widget {
.va-card__body {
height: 550px;
}
}
</style>
```
【问题讨论】:
-
顺便说一句,console.log(dataget) 显示 76576
-
问题出在verticalBarChartData
标签: javascript api vue.js axios chart.js