POST 具有 ANGULARJS $resource 的 JSON 数组

POST a JSON array with ANGULARJS $resource

我需要从我的 angularjs 应用程序发送一个 json 数组到 restful api。我正在使用 ngresources 来做到这一点。 从现在开始,我已经能够 post 并毫无问题地放置单个 object,但现在我需要发送一个 object 的数组,但我不能。

我试图从外部休息应用程序进行调用并且它工作正常但它不可能从我的 angular 应用程序。我尝试用 JSON.stringify 解析对象,但仍然无法正常工作。我在 $resources.

上设置了 header 'Content-Type': 'application/json'

我是这样处理 negresource 的:

.factory('AddSignosClinicos', function ($resource) {

    return $resource(dondeapuntar + "/Rest/Pacientedatossignosclinicos.svc/pACIENTEDATOSSIGNOSCLINICOSList/Add", {}, {
        create: { method: "POST", headers: { 'Content-Type': 'application/json', params: {} } }
    });
})

这就是我调用函数的方式:

var objeto = JSON.stringify(SignosClinicosGuardar);

var signosClinicosService = new AddSignosClinicos(objeto);

signosClinicosService.$create().then(function () {});

我做了一个console.log的objeto,是一个合适的json数组。

有什么想法吗?

非常感谢

编辑

我已经为 post 请求尝试了 $http 组件,它成功了!我不明白为什么不使用 ngResources,这是我的 $http:

代码
  $http({
            url:    'http://localhost:1046/Rest/Pacientedatossignosclinicos.svc/pACIENTEDATOSSIGNOSCLINICOSList/Add',
            method: "POST",
            data: SignosClinicosGuardar,
            headers: {
                'Content-Type': 'application/json; charset=UTF-8'
            }
        });

要 post 一个对象数组,您需要将选项 isArray: true 添加到您的 $resource:

.factory('AddSignosClinicos', function ($resource) {
    return $resource(
        "url-string-here", 
        {}, 
        {
            create: { 
                method: "POST",
                isArray: true
            }
        }
    );
})

调用新的 create 函数看起来像这样:

//some list of your object instances
var array_of_objects = ...

var saved_objects = AddSignosClinicos.create(
    array_of_objects
);

saved_objects.$promise.then(function() {
    ...
});

请注意,create$create 相比,没有 $

See the Angular documentation on $resource