什么是$ $$ hashKey添加到我的JSON.stringify结果
我曾尝试寻找他们的文档的Mozilla JSON stringify页面以及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()方法,一个paramater,我得到以下几点:
[
{
"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
的原因和原因
Angular增加了这个功能来跟踪你的变化,所以它知道什么时候需要更新DOM。
如果您使用angular.toJson(obj)
而不是JSON.stringify(obj)
那么Angular会为您删除这些内部使用的值。
此外,如果您track by {uniqueProperty}
后缀更改重复表达式以使用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
肯定无法工作。
在我的使用案例中(将产生的对象提供给X2JS)推荐的方法
data = angular.toJson(source);
帮助删除$$hashKey
属性,但结果可能不再由X2JS处理。
data = angular.copy(source);
也删除了$$hashKey
属性,但结果仍然可用作X2JS的参数。
它通常带有ng-repeat指令。 做dom操作AngularJS用特殊标识标记对象。
这在Angular中很常见。 例如,如果你用ngResource获得对象,你的对象将嵌入所有的资源API,你会看到诸如$ save等方法。同样,使用cookie时,AngularJS会添加一个属性__ngDebug。
链接地址: http://www.djcxy.com/p/48229.html上一篇: What is the $$hashKey added to my JSON.stringify result
下一篇: JSON.stringify, avoid TypeError: Converting circular structure to JSON