У меня есть следующий код, по которому я читаю, когда графика перемещается (масштабирование и вращение используют аналогичный код).
//Obtaining the graphic before it is moved
moveToolbar.on("graphic-move-start", function (evt) {
oldGraphicMove = evt.graphic;
});
//Updating the graphic on move end
moveToolbar.on("graphic-move-stop", function (evt) {
//Creating the operation to add to the undomanager
var operation = new Update({
featureLayer: evt.graphic._graphicsLayer, //The layer that will contain the modified graphic
preUpdatedGraphics: [oldGraphicMove], //The graphic before the changes are created
postUpdatedGraphics: [evt.graphic] //The graphic after the changes are made
});
//Adding the undo/redo operation
undoManager.add(operation);
//Updating the graphic
evt.graphic._graphicsLayer.applyEdits(null, [evt.graphic], null);
});
По какой-то причине старая графика до всегда остается равной новой графике после, поэтому при добавлении операции нечего отменять/повторять, поскольку графика помечается как равная до и после.
Я понятия не имею, что я могу делать неправильно, какие-либо подсказки по этому поводу?