2016-02-29 10 views
5

Devo inviare un array json a un riposante API dalla mia applicazione angularjs. Sto usando ngresources per fare questo. Da allora, sono stato abilitato a pubblicare e mettere un singolo oggetto senza problemi, ma ora ho bisogno di inviare una serie di oggetti e non posso.

Ho provato a fare la chiamata da un'applicazione di riposo esterna e funziona bene, ma è impossibile dalla mia applicazione angolare. Ho il compito di analizzare l'oggetto con JSON.stringify ma non funziona ancora. Ho impostato l'intestazione "Content-Type": "application/json", anche sulle risorse $.

Questo è come lo faccio il negresource:

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

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

Ed è così che io chiamo la funzione:

var objeto = JSON.stringify(SignosClinicosGuardar); 

var signosClinicosService = new AddSignosClinicos(objeto); 

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

ho fatto un console.log di objeto, ed è un array JSON corretta .

Qualche idea?

La ringrazio molto

EDIT

ho cercato componente http $ per la richiesta POST, e ha funzionato! Io non capisco perché non funziona con ngResources, questo è il mio codice per $ http:

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

fornire pezzo di codice e di scavare in profondità sull'errore stringa i JSON per favore. – morels

+0

Oh, mi dispiace per quello. Ho aggiunto il codice sopra. Grazie –

+0

Prova ad aggiungere l'opzione 'isArray: true' alla risorsa $ restituita. [Vedi ng docs su $ resource] (https://docs.angularjs.org/api/ngResource/service/$resource) – Fiver

risposta

5

di inviare un array di oggetti è necessario aggiungere l'opzione isArray: true al $ risorsa:

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

chiamata alla nuova funzione di create sarebbe simile a questa:

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

var saved_objects = AddSignosClinicos.create(
    array_of_objects 
); 

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

nota, il create vs $create, non c'è alcun 012..

See the Angular documentation on $resource

+0

Questo non ha funzionato neanche. Grazie –

+0

Ho aggiunto qualche pseudo-codice che mostra l'utilizzo di base, dal momento che non sono sicuro che tu stia chiamando correttamente il metodo di risorsa. – Fiver

+0

Hai ragione. Stavo chiamando la risorsa $ sbagliata. Grazie mille! :) –

Problemi correlati