0
Chart 개체에서 getValue 메서드에 액세스하려고하지만 함수가 정의되지 않은 상태가됩니다. 개체 내부에서 vuejs 메서드에 액세스하는 방법? (Vuejs 2)
<template>
<div>
<canvas width="600" height="400" ref="canvas"></canvas>
</div>
</template>
<script>
import Vue from 'vue';
import Chart from 'chart.js';
import Axios from 'axios';
export default {
mixins: [DateRangeMixin],
props: {
// other props...
callback: false,
},
data() {
return {
chart: '',
};
},
mounted() {
// ...
},
methods: {
//other methods...,
getValue(data) {
if (data === 1) {
return 'Up'
} else if(data === 0) {
return 'Down';
}
},
render(data) {
this.chart = new Chart(this.$refs.canvas, {
type: 'line',
data: {
labels: Object.keys(data),
datasets: [{
// a lot of data ....
data: Object.values(data),
}]
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero: true,
callback(label, index, labels) {
return this.getValue(label); // <-- Tried this and got: 'this.getValue is not a function'. I understand it bounces to new Chart object, but how to resolve this?
}
}
}]
}
}
});
},
},
};
</script>
나는 차트가 객체와
this
그것을 가리키는 그것 때문에 이해하지만 어떻게이 문제를 해결 않으며 콜백에서 내 방법에 액세스?
export default
... variable
으로 설정하면 variable.methods.getValue
을 통해 내 방법에 액세스 할 수 있지만이 시나리오에서는 목표를 어떻게 달성 할 수 있습니까?
캔버스에 ID를 지정하고 문서를 가져 와서 데이터, 레이블 및 옵션으로 제공하는 것이 좋습니다. 그것을 복잡하게 할 필요가 없습니다. 그렇지 않으면 vue chartjs 래퍼를 사용하십시오. https://github.com/apertureless/vue-chartjs – samayo
@samayo 여기에 큰 프로젝트가 있고 DOM을 가지고 놀고 다시 jQuery로 돌아가는 것은 결국 과잉이 될 것입니다. chartjs 래퍼는 내가 가지고있는 최선의 선택 인 것 같다 - 그것이 존재한다는 것을 몰랐다 - 고마워! – Mkey
var self = this를 지정하면됩니다. 차트를 작성하기 직전에 자체 구성 요소 속성에 액세스 할 수 있습니다. –