2017-01-25 4 views
0

私はコントローラに送信する前に変換するオブジェクト配列を持っています。オブジェクトはディープコピーの原因の問題を割り当てます

次のようにコピーする角度コード:

targetObjArray = object.assign({}, sourceObjArray); 
// when i call transform it does not effect source object :) 
transformSourceObject(targetObjArray) 
が、それは次のような問題が発生します。

sourceObjArray: SourceObject[] = [..]; 
    targetObjArray: SourceObject[]= []; 
    targetObjArray = object.assign(sourceObjArray); 
    // when i change target object it also cause source object to change 
    transformSourceObject(targetObjArray) 

次が動作しているようです。

Could not read document: Can not deserialize instance of java.util.ArrayList out of START_OBJECT token at [Source: [email protected]; line: 1, column: 1]; nested exception is com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.util.ArrayList out of START_OBJECT token at [Source: [email protected]; line: 1, column: 1] 

私のコントローラメソッドのシグネチャは次のとおりです。

@RequestMapping(.., method=RequestMethod.POST) 
public save(@RequestBody List<Object>, BindResult bindResult){} 
+0

作業? ['Object.assign'](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)は、最初の引数を変更します。 – jonrsharpe

+0

私は単にangle1と同様にしたいと思います。オブジェクトを深くコピーするangular.copy。あなたはお勧めできますか? –

+0

質問に「SourceObject」のコードを追加してください –

答えて

0

次のポストを参照して、見つかった次のコードスニペットあなたはそれがコピーだと思いますなぜ

How can i use angular.copy in angular 2

duplicateObject = <YourObjType> JSON.parse(JSON.stringify(originalObject)); 
+2

次に、この投稿を重複としてマークする必要があります答えをコピーする。これは20k +ユーザのための基本的なものです! – jonrsharpe

関連する問題