2017-06-06 6 views
0
次のコードは、オブジェクトにイベントマッピングするために使用されている

:oldGraphicMoveの値を変更するイベントの値である場合しかしイベントの値が変化し続ける

//shortened the function for better visibility 
moveToolbar.on("graphic-move-stop", function (evt) { 
    oldGraphicMove = evt.graphic;   
    oldGraphicMove.geometry.rings[0][0] = 42173; 
    newGraphicMove = evt.graphic; 
}); 

をたとえイベント自体に変更が加えられていなくても、それを模倣するように変化します。これを防ぐ方法はありますか?

答えて

0

問題は、oldGraphicMoveがevt.graphicと同じオブジェクトを指していることです。 evt.graphicのコピーを作成する必要があります。

oldGraphicMove = JSON.parse(JSON.stringify(evt.graphic));トリックを行う必要があります。

+0

これはすばらしいおかげです! – Maeglin77

0

オブジェクトは参照渡しされます。値で渡すには、無名関数を使用するか、オブジェクトをクローンする必要があります

//shortened the function for better visibility 
moveToolbar.on("graphic-move-stop", function (evt) { 
    oldGraphicMove = (function(x){ 
    var obj = Object.create(x); 
    obj.geometry.rings[0][0] = 42173; 
    return obj; 
    })(evt.graphic); 
    newGraphicMove = evt.graphic; 
}); 
関連する問題