私は調べてみたMozilla JSON 文字列化彼らのドキュメントのページや、ここ SO や Google でも調べましたが、説明が見つかりませんでした。私はJSON.stringify
何度も使用しましたが、この結果に出会ったことはありません。
JSON オブジェクトの配列があります:
[
{
"param_2": "Description 1",
"param_0": "Name 1",
"param_1": "VERSION 1"
},
{
"param_2": "Description 2",
"param_0": "Name 2",
"param_1": "VERSION 2"
},
{
"param_2": "Description 3",
"param_0": "Name 3",
"param_1": "VERSION 3"
}
]
それは私のに添付されています。それらを 1 つのパラメータとして$scope
受け取るために、メソッドを使用して以下を受け取ります。POST
JSON.stringify()
[
{
"param_2": "Description 1",
"param_0": "Name 1",
"param_1": "VERSION 1",
"$$hashKey": "005"
},
{
"param_2": "Description 2",
"param_0": "Name 2",
"param_1": "VERSION 2",
"$$hashKey": "006"
},
{
"param_2": "Description 3",
"param_0": "Name 3",
"param_1": "VERSION 3",
"$$hashKey": "007"
}
]
$$hashkey
メソッドから次のようなものstringify
(つまり、 なし$$hashkey
)を期待していたので、 プロパティが正確に何であるかを知りたいだけです。
[
{
"1":{
"param_2": "Description 1",
"param_0": "Name 1",
"param_1": "VERSION 1"
},
"2":{
"param_2": "Description 2",
"param_0": "Name 2",
"param_1": "VERSION 2"
},
"3":{
"param_2": "Description 3",
"param_0": "Name 3",
"param_1": "VERSION 3"
}
}
]
それが要因であるかどうかはわかりませんが、私は以下を使用しています:
- Angularjs 1.1.5、
- クエリ 1.8.2
- スプリング 3.0.4
サーバー側でも Spring Security 3.0.7 を使用しています。
問題はないのですが、原因と理由を知りたいです。$$hashkey
ベストアンサー1
Angular は変更を追跡するためにこれを追加し、DOM を更新する必要があるタイミングを認識します。
angular.toJson(obj)
の代わりにを使用するとJSON.stringify(obj)
、Angular はこれらの内部使用値を削除します。
また、繰り返し式を接尾辞を使用するように変更すると、Angularはまったくtrack by {uniqueProperty}
追加する必要がなくなります。たとえば、$$hashKey
<ul>
<li ng-repeat="link in navLinks track by link.href">
<a ng-href="link.href">{{link.title}}</a>
</li>
</ul>
常に、式の「リンク」部分が必要であることを覚えておいてください。私はいつもそれを忘れがちです。track by href
確実に機能しません。