我正在使用角度(1.0.8)提交有效载荷,并且它没有提交我所有的json.这是我把问题归结为angular.toJson()的地方.
angular.toJson(
{"yt$location": {
"$t": "US"
}
});
// "{"yt$location":{}}"
// I would like it should return
// "{"yt$location":{ "$t": "US" }}"
JSON.stringify({"yt$location": {
"$t": "US"
}});
// "{"yt$location":{"$t":"US"}}"
angular.toJson({"$t":"what"}); // "{}"
Run Code Online (Sandbox Code Playgroud)
从文档(http://code.angularjs.org/1.0.8/docs/api/angular.toJson)中,angular.toJson将忽略以$开头的所有属性.这种情况发生在许多角度方法(例如angular.equals)中,因为它在整个地方使用$来为它添加到数据中的任何属性添加前缀.
例如,从中获取JSON对象$http将添加一些额外的属性来检查数据是否已解析等,angular.toJson然后将忽略这些属性并按预期序列化您的数据.
要更直接地回答您的问题:
angular.toJson似乎与您的示例中记录完全一致.尝试避免使用具有以$开头的属性的数据,如果您真的必须尝试序列化对象而不使用angular.toJson,而是JSON.toStringify在支持它的浏览器中使用.
我认为这些$http方法都接受字符串有效负载以及对象,因此如果你正在使用它,你可以自己执行序列化.我没有对此进行测试,但$http代码使用转换对象有效负载,toJson但会直接传递字符串.
| 归档时间: |
|
| 查看次数: |
1661 次 |
| 最近记录: |