如何在 jointJS 的元素框内复制检查器编辑文本值 - Rappid
How to copy inspector edit text value inside element box in jointJS - Rappid
我想在检查器 displayName 编辑文本时将其传递给每个元素的收件箱名称。
我的 javascript 代码如下:
var count = 0;
//Code to edit element inboxName with value given from displayName field
cell.on('change:wi_displayName', function(cell, change, opt) {
if(count == 0){
//Do nothing the 1st time
}
else {
var inboxName = cell.get('wi_displayName');
cell.set( cell.attr('text/text'), inboxName);
}
count++;
})
//End of code to edit element inboxName with value given from displayName field
但问题出在最后一行:
cell.set( cell.attr('text/text'), inboxName);
如何设置值?
此元素的模板 json 是:
new joint.shapes.basic.Circle({
size: { width: 5, height: 3 },
attrs: {
circle: { width: 50, height: 30, fill: '#000000' },
text: { text: 'START', fill: '#ffffff', 'font-size': 10, stroke: '#000000', 'stroke-width': 0 }
}
})
谢谢
您可以使用 cell.attr('text/text', inboxName)
在 basic.Circle
元素上设置文本属性。 attr()
方法将路径作为第一个参数,它是 attrs
对象中属性的路径。请注意 cell.attr('text/text', 'MY VALUE')
等同于 cell.prop('attrs/text/text', 'MY VALUE')
.
cell.set()
只能用于设置顶级属性,因此您必须执行 cell.set('attrs', { text: { text: 'MY VALUE' } })
但这会覆盖其他属性(例如 circle
在您的情况下)。
我想在检查器 displayName 编辑文本时将其传递给每个元素的收件箱名称。
我的 javascript 代码如下:
var count = 0;
//Code to edit element inboxName with value given from displayName field
cell.on('change:wi_displayName', function(cell, change, opt) {
if(count == 0){
//Do nothing the 1st time
}
else {
var inboxName = cell.get('wi_displayName');
cell.set( cell.attr('text/text'), inboxName);
}
count++;
})
//End of code to edit element inboxName with value given from displayName field
但问题出在最后一行:
cell.set( cell.attr('text/text'), inboxName);
如何设置值?
此元素的模板 json 是:
new joint.shapes.basic.Circle({
size: { width: 5, height: 3 },
attrs: {
circle: { width: 50, height: 30, fill: '#000000' },
text: { text: 'START', fill: '#ffffff', 'font-size': 10, stroke: '#000000', 'stroke-width': 0 }
}
})
谢谢
您可以使用 cell.attr('text/text', inboxName)
在 basic.Circle
元素上设置文本属性。 attr()
方法将路径作为第一个参数,它是 attrs
对象中属性的路径。请注意 cell.attr('text/text', 'MY VALUE')
等同于 cell.prop('attrs/text/text', 'MY VALUE')
.
cell.set()
只能用于设置顶级属性,因此您必须执行 cell.set('attrs', { text: { text: 'MY VALUE' } })
但这会覆盖其他属性(例如 circle
在您的情况下)。