//Try #1, didn't fire or give an error dojo.connect(editorWidget, 'onDrawEnd', function(evt){ console.log(evt); }); //Try #2, nothing dojo.connect(map.getLayer(featureLayer.id), 'onclick', function(evt){ console.log(evt); }); Solved! Go to Solution.
dojo.connect(editorWidget, 'onEditsComplete', function(addResults, updateResults, deleteResults){ console.log('addResults: ', addResults); console.log('updateResults: ', updateResults); console.log('deleteResults: ', deleteResults); });dojo.connect(operationsPointLayer, "onEditsComplete", function(){
var tb = new esri.toolbars.Draw(map);
tb.activate(esri.toolbars.Draw.POINT);
dojo.connect(tb, "onDrawEnd", function(geometry){
console.log("X: " + geometry.x + ", Y: " + geometry.y);
});
tb.deactivate();
}
Hi Jim,
You can do this using the "onEditsComplete" event along with the "onDrawEnd" event. Here is an example:dojo.connect(operationsPointLayer, "onEditsComplete", function(){ var tb = new esri.toolbars.Draw(map); tb.activate(esri.toolbars.Draw.POINT); dojo.connect(tb, "onDrawEnd", function(geometry){ console.log("X: " + geometry.x + ", Y: " + geometry.y); }); tb.deactivate(); }
//Event object
{
declaredClass : "esri.layers.FeatureEditResult",
objectId : "208281",
success : "true"
}
dojo.connect(editorWidget, 'onEditsComplete', function(addResults, updateResults, deleteResults){ console.log('addResults: ', addResults); console.log('updateResults: ', updateResults); console.log('deleteResults: ', deleteResults); });The 'onEditsComplete' event returns 3 arrays as it's arguments
addResults, updateResults, deleteResults
http://developers.arcgis.com/en/javascript/jsapi/featurelayer.html#onEditsCompletedojo.connect(editorWidget, 'onEditsComplete', function(addResults, updateResults, deleteResults){ console.log('addResults: ', addResults); console.log('updateResults: ', updateResults); console.log('deleteResults: ', deleteResults); });
Similarly, you can capture the results before they are sent to the server, by listening for 'onBeforeApplyEdits'
http://developers.arcgis.com/en/javascript/jsapi/featurelayer.html#onBeforeApplyEdits
I think you can modify the edits, but cannot cancel them if something doesn't meet your criteria.
dojo.connect(featureLayer, "onBeforeApplyEdits", function(e){
var newPointX = e[0].geometry.x, newPointY = e[0].geometry.y;
//Go to town from here
});