我正在用Vue.js Version 2和Charts.js来创建一个组件,我可以将数据传递到该组件,它将以一种很好的方式显示这些数据。
<template>
<div class="container">
<canvas width="900" height="400"></canvas>
</div>
</template>
<script>
export default {
props: ['customers','dates'],
mounted() {
console.log('Chart-Component mounted.');
var context = this.$el.getContext('2d');
console.log(context);
var myChart = new Chart(context, {
type: 'line',
data: {
labels: this.dates,
datasets: [{
label: '# of Votes',
data: this.customers,
backgroundColor: [
'rgba(255, 99, 132, 0.2)'
],
borderColor: [
'rgba(255,99,132,1)'
],
borderWidth: 3,
cubicInterpolationMode: 'monotone',
lineTension: 0
}]
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero:true
}
}]
}
}
});
}
}
</script>
如果我给予画布一个id并通过以下方式获取上下文:
document.querySelector('#graph').getContext('2d');
它工作得很好,但是我只能使用我的组件一次,这显然不是我想要的。所以我试图通过以下方式获得上下文:
this.$el.getContext('2d');
但是我得到了以下错误:
[Vue warn]:挂接时出错:“类型错误:此.$el.getContext不是函数”
我在谷歌上搜索并检查了医生,但老实说,我真的是新的vue,我真的不知道我可以搜索了...
所以,如果有人能帮我,或者能告诉我,我应该检查下一步,这将是高度赞赏!谢谢
1条答案
按热度按时间quhf5bfb1#
在本例中,
this.$el
是对div#container
的引用。您需要做的是使用ref。ref用于注册对元素或子组件的引用。该引用将在父组件的$refs对象下注册
然后呢