JSON.stringify の結果に追加された $$hashKey とは何ですか? 質問する

JSON.stringify の結果に追加された $$hashKey とは何ですか? 質問する

私は調べてみた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受け取るために、メソッドを使用して以下を受け取ります。POSTJSON.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確実に機能しません。

おすすめ記事