使用 ANGULARJS $resource 发布一个 JSON 数组

Posted

技术标签:

【中文标题】使用 ANGULARJS $resource 发布一个 JSON 数组【英文标题】:POST a JSON array with ANGULARJS $resource 【发布时间】:2016-06-12 17:50:08 【问题描述】:

我需要从我的 angularjs 应用程序发送一个 json 数组到一个 restful api。我正在使用 ngresources 来执行此操作。 从现在开始,我已经可以毫无问题地发布和放置单个对象,但是现在我需要发送一个对象数组,但我不能。

我尝试从外部休息应用程序进行调用,它工作正常,但从我的角度应用程序中是不可能的。我尝试使用 JSON.stringify 解析对象,但仍然无法正常工作。我在 $resources 上也设置了标题“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 () );

我做了一个objeto的console.log,是一个合适的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'
            
        );

【问题讨论】:

请提供一段代码并深入挖掘 json stringify 错误。 哦,对不起。我已经添加了上面的代码。谢谢 尝试将选项isArray: true 添加到您返回的$resource。 See ng docs on $resource 【参考方案1】:

要发布一组对象,您需要将选项 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

【讨论】:

我添加了一些显示基本用法的伪代码,因为我不确定您是否正确调用了资源方法。 你是对的。我调用 $resource 是错误的。万分感谢! :)

以上是关于使用 ANGULARJS $resource 发布一个 JSON 数组的主要内容,如果未能解决你的问题,请参考以下文章

AngularJS 使用 $resource 将数据发布到 WebAPI

了解 AngularJS 的 $resource

使用 typescript 的 IResourceClass 扩展 angularjs 的 $resource

如何使用 AngularJS 的 $resource 和 spring rest 控制器获取布尔值

如何在 AngularJS $resource 中使用路径变量而不是请求参数

AngularJS $resource 不发送 X-Requested-With