【学習メモ】動かして学ぶ!Vue.js 開発入門 その5
Chapter7 Google Charts と連動させてみよう
02 Google Chartsと連動させる
<div id="chart_div" style="height: 500px;"></div> <div id="app"> <ul> <li v-for="(item,c) in dataArray" v-if="c>0">{{ item[0] }}:{{ item[1] }} <button v-on:click="addOne(c)">1票足す</button> </li> </ul> </div>
v-if="c>0"
はデータを2つ目以降からの表示にするため(['種類', '個数']
はデータに入れない)
// グラフに使うデータ var orgdata = [ ['種類', '個数'], ['野球', 3], ['サッカー', 4], ['バドミントン', 5], ['陸上', 1], ['ラグビー', 3], ['その他', 1] ]; google.charts.load('current', { packages: ['corechart'] }); google.charts.setOnLoadCallback(drawBasic); // グラフを表示する関数 function drawBasic() { var data = google.visualization.arrayToDataTable(orgdata); var options = { title: '好きなスポーツ', "is3D": true }; var chart = new google.visualization.PieChart( document.getElementById('chart_div')); chart.draw(data, options); } new Vue({ el: "#app", data: { dataArray: orgdata }, methods: { addOne: function (val) { // `val` 指定されたランチ番号 var obj = this.dataArray[val]; // 指定されたスポーツの投票数 obj[1]++; // +1 する this.dataArray.splice(val, 1, obj); // `obj` と `splice` で入れ替える drawBasic(); // 図を再描画 console.log(orgdata); } } });
結果