5

我正在尝试在较旧的fabricjs版本中明确地将文本设置为文本框object.setText("something")

在fabric js版本2中工作但不工作。这个版本中引入了任何其他方式吗?

var canvas = new fabric.Canvas('c');
var text1 = new fabric.Textbox('Text', {
  left: 10,
  top: 20,
   width: 300
})

canvas.add(text1);
canvas.on('text:changed', function(e) {

 var objTEmp = e.target;
 objTEmp.setText("some");

    
});
canvas{
 border:1px solid #000;
}
<script type="text/javascript" src="
https://cdnjs.cloudflare.com/ajax/libs/fabric.js/2.0.0-rc.4/fabric.js"></script>
<canvas id="c" width="400" height="400" style="border:1px solid #000000;"></canvas>

4

2 回答 2

10

该构建没有设置器/获取器(可选)。如果要设置文本,可以使用

obj.text = text;
//or
obj.set({
 text:text
});
//or
obj.set('text', text);

演示

var canvas = new fabric.Canvas('c');
var text1 = new fabric.Textbox('Text', {
  left: 10,
  top: 20,
   width: 300
})

canvas.add(text1);
canvas.on('text:changed', function(e) {
 var objTEmp = e.target;
 objTEmp.set({
  text : "some"
 });
});
canvas{
 border:1px solid #000;
}
<script type="text/javascript" src="
https://cdnjs.cloudflare.com/ajax/libs/fabric.js/2.0.0-rc.4/fabric.js"></script>
<canvas id="c" width="400" height="400" style="border:1px solid #000000;"></canvas>

于 2018-02-03T13:38:44.893 回答
0

您可以在此处构建自己的 Fabric.js 版本:http: //fabricjs.com/build/

选中“命名访问器”以恢复对 setter 和 getter 的支持。不推荐也不支持,谁知道它会在那里停留多久,但如果你现在只需要一个快速的解决方案,那就可以了。

于 2018-02-05T17:25:38.670 回答