什么是$ $$ 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
