使用AngularJS服务发布多个实体

时间:2016-04-21 18:32:46

标签: javascript angularjs

我想使用Angular JS发布2个实体。

这是我的AccountController.js

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

    };

我的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;
        });
    };

我可以发布一个参数,但是当我尝试放置很多时它不起作用。

4 个答案:

答案 0 :(得分:0)

你的意思是很多用户,很多帐户?通常,由于您要创建多个实体,因此您需要多个POST。因此帮助函数可能是您正在寻找的:

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

答案 1 :(得分:0)

应该是你的方法。但是可以尝试这个

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;
    });
};
服务器端的

可以尝试

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
}

答案 2 :(得分:0)

尝试使用JSON.stringify()JSON.stringify()方法将JavaScript值转换为JSON字符串。因此它会将您的数组/对象视为单个值。

 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;
 });
};

答案 3 :(得分:0)

当我们在webApi Controller中检索JSonObject时,我们如何反序列化它?似乎问题出现在这段代码中

    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;
        }
    }

`