我曾尝试在其文档的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()方法,我得到了以下信息:
$scope
POST
[ { "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
Angularjs 1.1.5, JQuery 1.8.2 and Spring 3.0.4 and Spring security 3.0.7 on the Server side
它不会给我造成任何问题,但我想知道导致该问题的原因和原因。 $$hashkey
$$hashkey
Angular添加了此功能来跟踪您的更改,因此它知道何时需要更新DOM。
如果您使用angular.toJson(obj)而不是JSON.stringify(obj)Angular,则会为您去除这些内部使用值。
angular.toJson(obj)
JSON.stringify(obj)
另外,如果您更改重复表达式以使用track by {uniqueProperty}后缀,则Angular根本不需要添加$$hashKey。例如
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肯定不会工作。
track by href