Заполните текст на каждом холсте Vue.js с помощью v-fro - PullRequest
0 голосов
/ 23 июня 2019

Я новичок в Vue.js, и мне очень нравится, но с каждым обучением возникает немного разочарования.

Так вот, что я пытаюсь сделать.

Этомой index.html :

<html>
    <head>
        <link rel="stylesheet" href="index.css">
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    </head>
    <body>
        <div id="app">
            <div v-if="message.length != 0" id="drawing">
                <span>Block</span>
                <div v-for="(col, colIdx) in drawData">
                    <canvas v-for="(desc, descIdx) in col" :width="desc" height="19" :key="colIdx.toString() + descIdx" :id="colIdx.toString() + descIdx">
                    </canvas>

                </div>
            </div>
        </div>
        <script src="index.js"></script>
    </body>
</html>

И это index.js :

var app = new Vue({
    el: '#app',
    data: {
      seen: true,
      drawData: [],
      message: ""
    },
    methods:{

    },
    //Lifecicle Hooks
    created(){
        console.log(`HOOK CREATED!`);
        fetch("/api_v1/pd").then((r)=>{
            return r.json();
        }).then(data=>{
            console.log(data);
            app.drawData = data;
        })
        setTimeout(()=>{
            console.log(`Set message`);
            app.message = "2 seconds expired!"
        }, 200)
    }
  })

С кодом выше я могудля отображения двумерного массива drawData, который содержит только цифры - что-то вроде этого, например

[[0,21,42,35], [4,2,8], [9,9,11,77]]

Рисунок выглядит хорошо, но я не знаю, как добавить "контекст""число как текст в элементе canvas.Я видел этот пример:

<script>
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
ctx.font = "30px Arial";
ctx.fillText("Hello World",10,50);
</script>

но как получить элемент контекста холста и добавить текст?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...