graph.on('cell:change', 获取不到 修改的文本内容
时间: 2023-12-01 10:02:25 浏览: 27
`cell:change` 事件只会在元素(element)的位置、大小或旋转等属性发生改变时触发,并不包括文本内容的改变。如果你想要监听文本内容的改变,可以使用 `cell:tool:update` 事件。具体的代码可以参考下面的示例:
```js
graph.on('cell:tool:update', function(cellView, args) {
var tool = args.tool;
if (tool && tool.action === 'edit') {
var text = args.text;
// 在这里处理文本内容的改变
}
});
```
在这个事件的回调函数中,如果 `args.tool` 的 `action` 属性为 `'edit'`,那么说明用户正在编辑元素的文本内容,此时你可以通过 `args.text` 获取到修改后的文本内容,并在回调函数中进行处理。
相关问题
graph.on('cell:update', 获取不到 修改的文本内容
在使用 `graph.on('cell:update', handler)` 时,`handler` 函数的参数包含了更新后的 cell 对象,因此您可以通过该对象获取修改后的文本内容。
例如,如果您想要获取更新后的文本内容,可以使用以下代码:
```javascript
graph.on('cell:update', function(cell) {
if (cell.isElement()) {
var text = cell.attributes.attrs.text.text;
console.log('Updated text: ' + text);
}
});
```
在上面的代码中,我们首先检查 cell 是否为元素,因为只有元素才有文本属性。然后,我们可以使用 `cell.attributes.attrs.text.text` 获取更新后的文本内容,并将其记录在控制台上。
X6 graph 获取 修改的文本内容
X6 Graph 是一款 JavaScript 图形库,它可以用来创建各种类型的图形,包括流程图、组织结构图、UML 图等。如果你想要获取 X6 Graph 中修改的文本内容,可以通过以下步骤实现:
1. 监听元素编辑事件
X6 Graph 提供了 `cell:change` 事件,可以监听到元素的编辑操作,例如文本内容的修改。你可以通过以下代码来监听该事件:
```javascript
graph.on('cell:change', ({ cell, value }) => {
if (cell.isNode() && cell.shape == 'text') {
console.log(`Text "${value}" is changed for node ${cell.id}`);
}
});
```
2. 获取元素的文本内容
在 `cell:change` 事件的处理函数中,你可以通过 `cell` 参数获取到被编辑的元素对象,通过 `value` 参数获取到修改后的文本内容。对于文本节点,你可以通过 `cell.shape` 属性判断其类型为文本节点。例如,上面的代码中,我们只输出文本节点的修改信息。
3. 修改元素的文本内容
如果需要修改元素的文本内容,你可以调用元素的 `attr` 方法,将 `text` 属性设置为新的文本内容。例如,以下代码可以将 ID 为 `node1` 的节点的文本内容修改为 `New text`:
```javascript
const node = graph.getCellById('node1');
node.attr('text/text', 'New text');
```
希望这些信息能够帮助到你。