我正在使用 $http 来获取用户集合。来自服务器的原始响应是这样的......
[{"id":2,"name":"John Doe","email":"johndoe@infosnap.com"}]
在成功回调中记录数据参数显示了这个......
[Object, each: function, eachSlice: function, all: function, any: function, collect: function…]
0: Object
$$hashKey: "004"
email: "johndoe@infosnap.com"
id: 2
name: "John Doe"
__proto__: Object
length: 1
__proto__: Array[0]
够好了。看起来 $http 已经将原始 JSON 反序列化为 JavaScript 对象。
接下来,我将数据分配给 $scope 变量,在成功回调中,以便在浏览器中执行一些调试......
$scope.debug = data;
现在,在我看来,我想将其显示为漂亮的 JSON 以便调试。
<pre>{{debug | json}}</pre>
我明白了...
"[{\"id\": 2, \"name\": \"John Doe\", \"email\": \"johndoe@infosnap.com\", \"$$hashKey\": \"004\"}]"
我试图得到这样的东西......
[
{
"id": 2,
"name": "John Doe",
"email": "johndoe@infosnap.com",
"$$hashKey": "004"
}
]
我还尝试对控制器中的 javascript 数组进行字符串化...
$scope.debug = JSON.stringify(data, true);
并且不使用过滤器...
<pre>{{debug}}</pre>
但我得到了相同的结果,除了 $$hashKey 已被删除......
"[{\"id\": 2, \"name\": \"John Doe\", \"email\": \"johndoe@infosnap.com\"}]"
如果我只是将数组中的第一项分配给 $scope,并使用 json 过滤器,它就可以正常工作......
$scope.debug = data[0];
在我看来...
<pre>{{debug | json}}</pre>
结果是...
{
"id": 2,
"name": "John Doe",
"email": "johndoe@infosnap.com"
}
我知道还有其他方法可以得到我想要的。我只是想了解发生了什么。
谢谢!