小编典典

什么是$$ hashKey添加到我的JSON.stringify结果中

javascript

我曾尝试在其文档的Mozilla JSON字符串化页面上以及在SO和Google上查看,但没有找到解释。我已经使用JSOn字符串化很多次了,但是从未遇到过这个结果

我有一个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"
    }
]

附加到我的$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方法获得与以下类似的东西:

[
    {
        "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, JQuery 1.8.2 and Spring 3.0.4 and Spring security 3.0.7 on the Server side

它不会给我造成任何问题,但我想知道导致该问题的原因和原因。 $$hashkey


阅读 663

收藏
2020-05-01

共1个答案

小编典典

Angular添加了此功能来跟踪您的更改,因此它知道何时需要更新DOM。

如果您使用angular.toJson(obj)而不是JSON.stringify(obj)Angular,则会为您去除这些内部使用值。

另外,如果您更改重复表达式以使用track by {uniqueProperty}后缀,则Angular根本不需要添加$$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肯定不会工作。

2020-05-01