製作一個用於選擇繪製圖表檔案的<select>的方法
P粉022140576
2023-08-20 10:08:18
<p>我有一個使用外部文件資料繪製的圖表。現在我想要一個選擇框,使用者可以選擇要讀取的檔案。這樣圖表就可以動態改變。我如何使用vue和chartjs來實現這個功能? </p>
<p>目前我在Home中這樣導入資料:</p>
<pre class="brush:php;toolbar:false;"><template>
<div class="home">
<Graph :vul_data="data"/>
</div>
</template>
<script>
import { Component, Prop, Vue } 從 'vue-property-decorator';
import Graph from '@/components/Graph.vue';
import {data} from '@/data/dataFile.js'
@Component({
components: {
Graph,
},
})
export default class HomeView extends Vue {
data() {
return {
data: data,
}
}
}
</script></pre>
<p>每個文件的資料如下:</p>
<pre class="brush:php;toolbar:false;">export const data = {
"points": {
"line1": {
"x": [
-11,
-11,
],
"y": [
7,
8,
]
},
},
}</pre>
<p>組件如下:</p>
<pre class="brush:php;toolbar:false;"><template>
<div>
<canvas id="myChart"></canvas>
</div>
</template>
<script>
import Chart from 'chart.js/auto';
export default{
name: "Graph",
props: ["vul_data"],
mounted(){
const ctx = document.getElementById('myChart');
const myChart = new Chart(ctx, {
type: 'scatter',
data: {
datasets: [{
label: 'Line 1',
data:[
{x: this.vul_data.points.line1.x[0], y: this.vul_data.points.line1.y[0]},
{x: this.vul_data.points.line1.x[1], y: this.vul_data.points.line1.y[1]},
],
},
]
},
});
}
}
</script>
<style>
</style></pre>
您可以使用
<select>
標籤,其中的選項包含與您的.js檔案名稱相等的值。當選擇發生變化時,請執行一個方法,動態匯入該檔案並將匯入的資料賦值給您作為屬性傳遞給Graph元件的變數。簡單的範例程式碼: