不能 resize/edit 对象,直到我 group/ungroup 它们 - AlpineJS + FabricJS
Cannot resize/edit objects until I group/ungroup them - AlpineJS + FabricJS
问题重现于此:
https://jsfiddle.net/gtkjmuqb/10/
我完全不知道发生了什么。这是一个非常简单的设置。 AlpineJS 触发将文本对象添加到 canvas。这些新对象不能 resized/edited - 只能移动。调整大小控件出现但不起作用(移动对象除外)。
但是如果我创建另一个对象(再次单击该按钮,它表现出相同的不可调整大小的行为)然后将这两个对象组合在一起(单击+拖动),这两个对象现在都可以调整大小 - 都作为组的一部分,而且一旦我再次取消选择并取消组合它们。
根据 jsfiddle,我在页面加载时进行了以下设置:
this.canvas = new fabric.Canvas('c');
像这样添加文本对象:
var text = new fabric.Textbox('hello world', {
left: 100,
top: 100,
fontSize: 20
});
this.canvas.add(text);
如果我添加第三个文本对象,它会遇到同样的问题,直到我将它添加到一个组然后将其删除。
我遇到了同样的问题。环顾四周,我发现 Vue+FabricJS 也有类似的问题。
这基本上是由于 AlpineJS(如 Vue)使用 Proxy 对象。
使用 Alpine.raw()
连接到您的 canvas
你的情况:
var text = new fabric.Textbox('hello world', {
left: 100,
top: 100,
fontSize: 20
});
Alpine.raw(this.canvas).add(text);
应该适合你:)
问题重现于此:
https://jsfiddle.net/gtkjmuqb/10/
我完全不知道发生了什么。这是一个非常简单的设置。 AlpineJS 触发将文本对象添加到 canvas。这些新对象不能 resized/edited - 只能移动。调整大小控件出现但不起作用(移动对象除外)。
但是如果我创建另一个对象(再次单击该按钮,它表现出相同的不可调整大小的行为)然后将这两个对象组合在一起(单击+拖动),这两个对象现在都可以调整大小 - 都作为组的一部分,而且一旦我再次取消选择并取消组合它们。
根据 jsfiddle,我在页面加载时进行了以下设置:
this.canvas = new fabric.Canvas('c');
像这样添加文本对象:
var text = new fabric.Textbox('hello world', {
left: 100,
top: 100,
fontSize: 20
});
this.canvas.add(text);
如果我添加第三个文本对象,它会遇到同样的问题,直到我将它添加到一个组然后将其删除。
我遇到了同样的问题。环顾四周,我发现 Vue+FabricJS 也有类似的问题。
这基本上是由于 AlpineJS(如 Vue)使用 Proxy 对象。 使用 Alpine.raw()
连接到您的 canvas你的情况:
var text = new fabric.Textbox('hello world', {
left: 100,
top: 100,
fontSize: 20
});
Alpine.raw(this.canvas).add(text);
应该适合你:)