2013-09-18 1 views
1

В fabric-js я создаю группу Rect и текстовое поле, а затем добавляю его на холст. Я использую следующий код, но могу ли я изменить текст текстового поля после его добавления в холст.изменить текст после его добавления на холст

Я сделал скрипку Пожалуйста Проверьте,

http://jsfiddle.net/HAb4N/5/

var canvas = new fabric.Canvas('c'); 

var Bar = new fabric.Text('Bar', {selectable: false, top: 50, left: 10}); 


var rect = new fabric.Rect({width: 100, height: 100, left: 100, top: 100, fill: 'red'}); 
var group = new fabric.Group([rect, Bar], {selectable: true, top: 50, left: 100}); 
canvas.add(group); 

canvas.renderAll(); 

$(document).click(function(e) { 
    console.log('click'); 
    console.log('ActiveObject', canvas.getActiveObject()); 
    console.log('ActiveGroup', canvas.getActiveGroup()); 
    Bar.set('Text','Selectedoooooooo'); 
}); 

ответ

1

Да, вы можете установить текст, когда он будет добавлен в canvas.Here является jsfiddle

попробуйте изменить

Bar.set('Text','Selectedoooooooo'); 

в

Bar.setText('Selectedoooooooo'); 

Надеется, что это помогает ....

+0

я не могу использовать объект Bar непосредственно, я хочу, чтобы получить имя объекта, когда пользователь нажимает на любой объект, а затем, в частности, изменить текстовое поле – anam

+0

@simmisimmi теперь задает другой вопрос – iJade

0

Надеется, что это поможет выбрать первый объект затем введите текст в текстовой области

<canvas id="c" width="600" height="200"></canvas> 
<textarea id="textinput" name="textarea" placeholder="Enter Text"> </textarea> 

var canvas = new fabric.Canvas('c'); 
document.getElementById('textinput').addEventListener('keyup', function (e) { 
var obj = canvas.getActiveObject(); 
if (!obj) return; 
obj.setText(e.target.value); 
canvas.renderAll(); 
}); 
var text = new fabric.Text('Your Text Here', { left: 400, top: 200,fill:'#A0A0A0'}); 
canvas.add(text); 
var rect = new fabric.Rect({width: 100, height: 200, left: 200, top: 100, fill:'red'}); 
var group = new fabric.Group([rect,text], {selectable: true, top: 50, left: 350}); 
canvas.add(group); 
canvas.renderAll(); 
1

Вы можете получить доступ к детям в группе с помощью getObjects() или item() методы:

canvas.on('object:selected', function(e) { 
    e.target.item(1).setText('Selectedoooooooo'); 
}); 

См http://jsfiddle.net/fabricjs/HAb4N/12/

2

Это работает для меня:

Bar.setText("my_text"); 
canvas.renderAll(); 
0

При использовании функции «установить» функцию, попытайтесь верблюжьего для первого аргумента!

Другими словами изменить:

Bar.set('Text','Selectedoooooooo'); 

к:

Bar.set('text','Selectedoooooooo'); 

Это работает для меня