2016-04-21 10 views
1

Ich möchte 2 Entitäten mit Angular JS veröffentlichen.Posten Sie mehrere Entitäten mit AngularJS-Diensten

hier ist mein AccountController.js

$scope.InsertAccount = function (user,account) { 
     accountsService.InsertAccount(user,account); 

    }; 

Mein AccountService.js

var InsertAccount = function (user, account) { 

     return $http.post("http://localhost:26309/api/Compte/addUserV", {user :user, compte: account}) 
     .then(function() { 
      $log.info("Insert Successful"); 
      return; 
     }); 
    }; 

Ich kann einen einzelnen Parameter veröffentlichen, aber es funktioniert nicht, wenn ich versuche, viele zu setzen.

+0

ein Fehler angezeigt? –

+0

Was meinen Sie mit 'post a single parameter'? Ich kann keine Parameter sehen. – Ioan

+0

Ich meine, wenn ich einen Benutzer poste, aber wenn ich versuche, Benutzer und Konto mit einer Route zu buchen, tut es nicht –

Antwort

0

Meinst du viele Benutzer, viele Konten? Da Sie mehrere Entitäten erstellen, sind normalerweise mehrere POSTs erforderlich. So könnte eine Hilfsfunktion das sein, wonach Sie suchen:

$scope.InsertAccounts = function (users, accounts) { 
    return $q.all(users.map(function (user, n) { 
    return $scope.InsertAccount(user, accounts[n]); 
    })); 
} 
+0

Ich meine nicht viele Benutzer, ich möchte einen Benutzer mit seinem Konto mit einer Route –

+0

Welchen Fehler sehen Sie. Dies ist wahrscheinlich ein Back-End-Problem. Können Sie den Backend-Code für diese Route posten? – bcherny

0

sollte Ihre Methode funktionieren. aber dies kann man versuchen,

var InsertAccount = function (user, account) { 
    var data = {user :user, compte: account}; // assign first and can try JSON.stringify({,,}) 
    return $http.post("http://localhost:26309/api/Compte/addUserV", data) 
     .then(function (response) { 
     $log.info("Insert Successful"); 
     return response; 
    }); 
}; 

in Serverseite können versuchen

public HttpResponseMessage addUserV(Newtonsoft.Json.Linq.JObject data) 
{ 
    var result = JsonConvert.DeserializeObject<dynamic>(data); 
    var user = result.user; 
    var compte = result.compte; 
    // rest of code 
} 
+0

Wenn wir das JSonObject im webApi Controller abrufen, wie können wir es deserialisieren? es scheint, dass das Problem in diesem Code ist addUserV (Newtonsoft.Json.Linq.JObject Daten) { Benutzer Benutzer = Daten ["Benutzer"]. ToObject (); Compte compte = Daten ["compte"]. ToObject (); ...} –

+0

gleichen Prozess kann verwenden, die Sie zuvor verwendet haben. Welche Technologie wird auf der Serverseite verwendet? –

+0

bin mit ASP.NET –

0

versuchen JSON.stringify() verwenden, werden die JSON.stringify() Verfahren wandelt ein JavaScript-Wert auf einen JSON String. Daher wird Ihr Array/Objekt als ein einzelner Wert betrachtet.

var InsertAccount = function (user, account) { 
//use JSON.stringify 
var data = JSON.stringify({user :user, compte: account}); 

return $http.post("http://localhost:26309/api/Compte/addUserV", data) 
    .then(function (response) { 
    $log.info("Insert Successful"); 
    return response; 
}); 
}; 
0

Wenn wir das JSonObject im webApi Controller abrufen, wie können wir es deserialisieren? es scheint, dass das Problem in diesem Code `

ist
public HttpResponseMessage addUserV(Newtonsoft.Json.Linq.JObject data) 
    { 
     Utilisateur user = data["user"].ToObject<Utilisateur>(); 
     Compte compte = data["compte"].ToObject<Compte>(); 

     try 
     { 
      if (!_compteService.CreerUtilisateur(user, compte)) 
      { 
       throw new Exception("ajout de l'instance de l'utilisateur non effecuté " + compte.designation); 
      } 
      HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created); 
      //response.StatusCode = HttpStatusCode.Created; 
      // String uri = Url.Link("GetUser", new { id = user.id }); 
      // response.Headers.Location = new Uri(uri); 

      return response; 

     } 
     catch (Exception e) 
     { 
      HttpResponseMessage response = Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e); 

      return response; 
     } 
    } 

`

Verwandte Themen