在以角度调用POST操作($ http)之前修改POST主体元素

时间:2015-04-17 14:22:12

标签: angularjs

我想将一个列表(investDtls)复制到另一个列表(listInvestOptions),这是POST正文的一部分。

以下是代码段:

app.controller("OneClickController", function($scope,$location, $resource, $http){
            $scope.investDtls ={};


        $scope.submitOneClick = function(investDtls) {
        //$scope.oneClick.submitOneClickDetails.listInvestOptions = angular.copy(investDtls);
        $http({
            method : 'POST',
            url : '/investor/api/v1/oneclick',
            data : $scope.oneClick
        }).success(function(response) {
        $scope.oneClick.submitOneClickDetails.listInvestOptions = angular.copy(investDtls);
        //alert("success");
        }); 
        }
                    });

这里我在 investDtls 列表中有一些字段,我想将内容复制到另一个列表( listInvestOptions ),这是POST正文的一部分 我正在访问它:

$ scope.oneClick.submitOneClickDetails.listInvestOptions

但是根据上面的代码片段,在POST操作之后会复制列表。

我想在调用POST块之前执行复制操作

$scope.oneClick.submitOneClickDetails.listInvestOptions = angular.copy(investDtls);

$http({
                    method : 'POST',
                    url : '/investor/api/v1/oneclick',
                    data : $scope.oneClick
                })

如果我按上述方式继续操作,则无法使用 $ scope.oneClick.submitOneClickDetails.listInvestOptions 部分,除非POST块被执行,否则无法访问。

希望我能从我这边明白..更多的澄清最受欢迎.. :)

1 个答案:

答案 0 :(得分:0)

看看这个Plunker,如果有任何帮助,请告诉我。

JS

var app = angular.module("app", []);

app.controller("OneClickController", function($scope, $location, $http){
    $scope.investDtls = {'test': 'blah'};
    $scope.oneClick = {submitOneClickDetails: {listInvestOptions: null}};

    $scope.submitOneClick = function(investDtls) {
        $scope.oneClick.submitOneClickDetails.listInvestOptions = angular.copy(investDtls);
        $http({
            method : 'GET',
            url : 'data.json',
            data : $scope.oneClick
        }).success(function(response) {
            console.log(response);
            console.log($scope.oneClick);
        }); 
    }
});

标记

<body ng-controller="OneClickController">
    <button ng-click="submitOneClick(investDtls)">Submit</button>
</body>

请注意,我正在使用GET进行测试。