[我在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向前和向后引用的问题...我可能会在另一个问题上提出发布...