AngularJS传递{}而不是null

时间:2015-11-13 15:56:26

标签: javascript angularjs browser asp.net-web-api

使用angularjs 1.4.3,IIS,webapi,Chrome和IE 10

我有一个问题,我有这样的模型:

{ someKey: null }

此模型是通过webapi电话收到的。

在Angular中我将更改提交回服务器上的webapi端点,当我从Chrome上的网络选项卡中通过它时,模型看起来像这样:

{ someKey: {} }

这导致webapi服务器出现模型状态

的问题

似乎Angular将null更改为空对象,这对我来说似乎不对。空对象不是空的。

有关于此的具体知识吗?这是一个问题还是错误?

提前致谢。

我也在使用Typescript。

其他细节/澄清:

我使用$ http发布到webapi端点,如下所示:

var myHttpConfig: ng.IRequestConfig = {
            method: 'POST',
            url: "http://my webapi url here"),
            timeout:  120000,
            data: {},
            headers:  null
        };
myHttpConfig.headers = { 'Content-Type': 'application/json' };
myHttpConfig.data = { someKey: { aField: null } };
localPostPromise = this._$http(myHttpConfig);

网络视图显示已发布:

{"someKey":{"aField":{} } }

我的控制台日志将此显示为我在配置中设置的数据:

{ \"someKey\":{\"aField\":null } }

原始数据首先返回给我,与模型绑定:

{ "someKey":{"aField":null } }

1 个答案:

答案 0 :(得分:0)

如果我理解你的问题: 使用undefined:

myHttpConfig.data = { someKey: { aField: undefined } };

或迭代对象属性并执行此操作

for (var property in object) {
   if (object.hasOwnProperty(property) && object[property] == null) {
      delete object[property];
}}