2017-08-11 71 views
0

我想在圖像上添加一些文字。這工作正常,但我也希望文本動態從一個MySQL數據庫。帶變量的Fabric.js動態文本

現在我需要一個變量插入到對象中。

var myVariable = "text"; 

var text = new fabric.Text(myVariable, { 
       fontFamily: 'Comic Sans', 
       fontSize: 20 
      }); 

我不明白這一點的解決:

fabric.Image.fromURL('picture.png', function(img) { 

     img.setWidth(100); 
     img.setHeight(50); 

     theNumber = "2"; 

//或

theNumber = 2; 


     var text = new fabric.Text(theNumber2, { 
      fontFamily: 'Comic Sans', 
      fontSize: 20 
     }); 


     text.set({ text: theNumber2 }); 

我在控制檯中看到, 遺漏的類型錯誤:this.text.split不一個函數fabric.min.js:7

我可以以另一種方式動態添加文本嗎?

+0

你的代碼工作正常。如果你想動態添加文本,你可以在api的幫助下完成。 –

+0

你是對的,代碼與字符串正常工作。不知道爲什麼它不在首位工作。坦克你! – Jason0212

回答

0

var canvas = new fabric.Canvas('c'); 
 
var theNumber = 2; 
 
var text = new fabric.Text(theNumber.toString(), { 
 
    fontFamily: 'Comic Sans', 
 
    fontSize: 20, 
 
    left:50, 
 
    top:50 
 
}); 
 

 
canvas.add(text); 
 

 
//image with text(Number) 
 

 
fabric.Image.fromURL('https://upload.wikimedia.org/wikipedia/en/9/9b/Yoda_Empire_Strikes_Back.png', function(img) { 
 

 
    img.setWidth(100); 
 
    img.setHeight(100); 
 

 
    var text = new fabric.Text(theNumber.toString(), { 
 
     fontFamily: 'Comic Sans', 
 
     fontSize: 20, 
 
     fill:'white', 
 
     left:img.width/2, 
 
     top:img.height/2, 
 
     originX:'center', 
 
     originY:'center', 
 
    }); 
 
    var group = new fabric.Group([img, text]); 
 
    canvas.add(group); 
 
    canvas.centerObject(group); 
 
    group.setCoords(); 
 
    }); 
 
//text.set({ text: theNumber2 });
canvas { 
 
    border: 2px dotted blue; 
 
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.7.17/fabric.js"></script> 
 
<canvas id="c" width="400" height="400"></canvas>

使用這樣theNumber.toString(),因爲你設置數量,使其爲字符串,然後將其設置爲fabric.Text。

+0

是的,謝謝。它正在使用字符串。 – Jason0212

+0

@ Jason0212馬克,如果它的作品,歡呼:) – Durga