Javascript 无法编辑Ext图表中的自定义文本项
我有一个用ExtJS制作的图表。这个图表有一些自定义的文本项。我想动态更改这些文本。我希望这些文本组件作为svg的一部分,因为图表的导出图像也应该包含这些自定义文本。 有人知道怎么解决这个问题吗?提前谢谢 更新 当我使用Javascript 无法编辑Ext图表中的自定义文本项,javascript,extjs,charts,Javascript,Extjs,Charts,我有一个用ExtJS制作的图表。这个图表有一些自定义的文本项。我想动态更改这些文本。我希望这些文本组件作为svg的一部分,因为图表的导出图像也应该包含这些自定义文本。 有人知道怎么解决这个问题吗?提前谢谢 更新 当我使用Ext.draw.Sprite而不是Ext.draw.Text时,它起作用了。但图表的导出图像仍然包含旧文本。更新 我认为这是一个bug,因为尽管setText方法显示了一个合理的代码: setText: function(text) { var me = this,
Ext.draw.Sprite
而不是Ext.draw.Text
时,它起作用了。但图表的导出图像仍然包含旧文本。更新
我认为这是一个bug,因为尽管
setText
方法显示了一个合理的代码:
setText: function(text) {
var me = this,
surface,
sprite;
if (me.rendered) {
surface = me.surface;
sprite = surface.items.items[0];
me.text = text || '';
surface.remove(sprite);
me.textConfig.type = 'text';
me.textConfig.text = me.text;
sprite = surface.add(me.textConfig);
sprite.setAttributes({
rotate: {
degrees: me.degrees
}
}, true);
if (me.autoSize || me.viewBox) {
me.updateLayout();
}
} else {
me.on({
render: function() {
me.setText(text);
},
single: true
});
}
}
问题是文本精灵永远不会被渲染,
me.rendered
保持为false,因此代码永远不会被执行。一个非常麻烦的解决方法是从外部设置渲染标志。txtDraw.setAttributes({'text':'Jeff'},true)
使用Ext.draw.Sprite的setAttributes方法
参考-感谢Saki的回复。你的观察是对的。但是我可以通过使用
Ext.draw.Sprite
解决这个问题。但是我仍然无法下载带有更新文本的图表。你能帮我吗?非常感谢Rahul:)
var txtDraw = Ext.create('Ext.draw.Sprite', {
type:'text',
text : 'Initial Text',
font : '24px Arial',
width : 500,
height: 100,
x:20,
y:20
});
setText: function(text) {
var me = this,
surface,
sprite;
if (me.rendered) {
surface = me.surface;
sprite = surface.items.items[0];
me.text = text || '';
surface.remove(sprite);
me.textConfig.type = 'text';
me.textConfig.text = me.text;
sprite = surface.add(me.textConfig);
sprite.setAttributes({
rotate: {
degrees: me.degrees
}
}, true);
if (me.autoSize || me.viewBox) {
me.updateLayout();
}
} else {
me.on({
render: function() {
me.setText(text);
},
single: true
});
}
}