gpt4 book ai didi

javascript - 如何以编程方式更改 mxCell 值?

转载 作者:行者123 更新时间:2023-11-28 03:23:11 32 4
gpt4 key购买 nike

我有一个图表,其中包含 json 中的“逻辑”表示(我将其用于另一个程序),并且该图形表示位于 MxGraph 中,在 Angular 组件中呈现。

我使用 XML 作为单元格的值,如 Documentation 中所建议的那样.

虽然对我来说,拦截 mxgraph 中的更改并更新 json 非常容易,但我无法在图中传播 json 中的更改。

一个愚蠢的例子是,如果我更改“标签”的值。我可以这样做:

editor.graph.model.cells[2].value.setAttribute('label', "Test");

但只有当发生另一次更新时(例如,移动图表中的单元格),此更改才可见。

我尝试触发 mxEvent.CHANGE 事件,但无法正确设置编辑和更改以便它们传播到图表。我还尝试创建一个新的 mxGeometryChange,但我再次失败......

预先感谢您的任何提示...

最佳答案

我找到了一个解决方案,即使我无法使用它...这是我添加的功能:

    // To use it call:
// graph.updateCell(cell, "newlabel");
graph.updateCell = function(cell, label)
{
if (cell !== null) {
cell.value.setAttribute('label', label);

this.model.beginUpdate();
try
{
//this.cellUpdated(cell);
this.model.setValue(cell, cell.value);
this.fireEvent(new mx.mxEventObject(mx.mxEvent.LABEL_CHANGED,
'cell', cell, 'ignoreChildren', false));
}
finally
{
this.model.endUpdate();
}

return cell;
} else return null;
};

我的问题是我无法使用此功能,但此时问题有所不同。原因是我想从另一个没有运行 mxgraph 的组件中使用这个函数,这就是我现在的挣扎...这变成了一个关于 Angular ngModel 前向和后向引用的问题...我可能会在另一个组件上问它发布...

关于javascript - 如何以编程方式更改 mxCell 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58930513/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com