如何发布数据数组

时间:2016-06-21 19:01:56

标签: angularjs

我想发布数据数组以休息api调用角度js这里是我的示例代码。请提出建议,因为我是角度js的新手。

这是我的控制器:

numFound

这是我的服务:

$scope.addRowToGrid = function() {
    var jsonData = $scope.create;
    console.log("create", $scope.create);
    var sendDataForCreate = [jsonData.PIDM,
        jsonData.phoneCode, jsonData.phoneNumber, jsonData.sequenceNumber, jsonData.comment,
        jsonData.areaCode, jsonData.dataOrigin, jsonData.userId
    ];
    service.create(sendDataForCreate).success(
        function(response) {});
};

html:

angular.module('ContactApp').factory(
    'service', [
        '$http', 'Settings',
        function($http, Settings) {
            return {
                create: function(jsonData) {
                    return $http.post('http://localhost:20080/api/person/phone/v1/jonesl?token=w9cJTKsjhumFoFXzQ5fzw9XQBc', {
                            "operation": "create",
                            headers: {
                                'Content-Type': 'application/x-www-form-urlencoded'
                            }
                        }).success(
                            function(response) {
                                console.log("create", response);
                                return response.data;
                            });
                }
            }
        }
    ]);

1 个答案:

答案 0 :(得分:0)

您的代码建议您不要将数组发送到服务器,您想发送urlencoded form-data

服务:

angular.module('ContactApp').factory('service', [
        '$http', '$httpParamSerializerJQLike', 'Settings',
        function ($http, $httpParamSerializerJQLike, Settings) {
            var createUserUrl = 
                "http://localhost:20080/api/person/phone/v1/jonesl?token=blah";
            var CreateUser = function (DTO) {
                //with jQuery dependency
                //var dataToSend = $.param(DTO);
                //without jQuery dependency
                var dataToSend = $httpParamSerializerJQLike(DTO);
                var config = {
                    method: "POST",
                    url: createUserUrl,
                    data: dataToSend,
                    headers: {
                        'Content-Type': 'application/x-www-form-urlencoded'
                    }
                };
                return $http(config);
            };
            return {
                CreateUser: CreateUser
            }
        }
]);

控制器:

$scope.addRowToGrid = function () {
    var jsonData = $scope.create;
    service.CreateUser(jsonData).then(function(response){
        //success callback
        var data = response.data;
        //do something with the data
    },function(response){
        //error callback
    });
};

希望你能得到基本的想法。

P.S:不要使用.success。它已经过时了。