Я хочу создать кнопку, центрирующую холст. Нажатие кнопки должно вызвать метод rec()
, который должен центрировать холст, созданный в mounted()
.
Но это не работает. Я подозреваю, что методы не могут ссылаться на вещи, созданные в mounted()
.
Как это исправить?
<div id="main">
<canvas id="c" width="400" height="400"></canvas>
</div>
<button v-on:click="recenter">Recenter</button>
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/4.5.0/fabric.js"></script>
<script>
const app = new Vue(
{
el: '#main',
methods: {
recenter: function rec() {
var fabric_canvas = new fabric.Canvas('c')
fabric_canvas.setViewportTransform([1,0,0,1,0,0]);
}
},
mounted() {
var fabric_canvas = new fabric.Canvas('c');
var group = [];
var myurl = "https://upload.wikimedia.org/wikipedia/commons/a/a0/Svg_example1.svg";
fabric.loadSVGFromURL(
myurl,
function(objects,options) {
var loadedObjects = new fabric.Group(group);
fabric_canvas.add(loadedObjects);
fabric_canvas.renderAll();
},
function(item, object) {
group.push(object);
}
);
}
}
);
</script>
который должен центрировать холст, созданный в Mounted() - вы создаете новый в методе, а не центрируете существующий.
да. Я не могу понять, как использовать существующий. я полный нуб в js.