2016-02-29 47 views
5

我需要从我的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数组。

有什么想法?

非常感谢您

编辑

我已经试过$ 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' 
      } 
     }); 
+0

提供一段代码,深入挖掘json stringify错误请。 – morels

+0

哦,对不起。我已经添加了上面的代码。谢谢 –

+0

尝试在返回的$资源中添加选项'isArray:true'。 [请参阅$资源上的文档](https://docs.angularjs.org/api/ngResource/service/$resource) – Fiver

回答

5

要发布对象的数组,你需要选择isArray: true添加到您的$资源:

.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 VS $create,没有$

See the Angular documentation on $resource

+0

这也没有奏效。谢谢 –

+0

我已经添加了一些显示基本用法的伪代码,因为我不确定是否正确调用资源方法。 – Fiver

+0

你说得对。我打电话给$资源错误。万分感谢! :) –