AngularJS $ http.post删除属性

amc*_*dnl 8 angularjs

当我$http.post在AngularJS中使用如下对象时:

{  name: '232', id: '3434', $type: "API.Models.Fields.ValuesList, API" }
Run Code Online (Sandbox Code Playgroud)

签名:

$http.post('api/records', model);
Run Code Online (Sandbox Code Playgroud)

$type无论值是什么,每次在chrome流量监听器上都会删除该属性.

有一些秘密的$ remover;)?

更新:ANGULAR> = 1.3现在没有删除$ ATTRS.

Ste*_*wie 12

是的,当通过$http服务发送数据时,Angular会剥离以美元为前缀的属性.

$ http service使用angular.toJson方法将对象序列化为JSON字符串.此方法使用前导$字符去除属性,因为angular在内部使用此表示法(例如,实例方法$save可用于所有ngResource对象).

快速解决方法是手动对数据进行字符串化(使用JSON.stringify),然后再将其传递给$http:

$http.post('/api/path', JSON.stringify(model));
Run Code Online (Sandbox Code Playgroud)