从角度方法

时间:2015-12-30 20:50:05

标签: javascript angularjs

我有一个带有http.post请求的角度控制器,但我没有得到响应,该服务工作正常,因为它使用postman进行测试。

我需要在加载页面时在HTLM表中显示来自WS的数据( 我知道如何做这个部分 ),我发送了变量名称为“数据”的请求正文,标题配置为变量名“ config ”,http.post调用我的WS的URL。

我是棱角分明的新手,所以我不知道我是否遗漏了什么东西,我也想在控制台中打印响应,以测试它是否符合我的期望。

我从网上找到的一个例子中获取了这个代码并对其进行了修改,在示例中有一个按钮,其中调用SendData()函数,但我不需要按钮,调用必须作为页面已加载。

这是控制器代码

.controller("HttpGetTestController", function ($scope, $http) {
    $scope.SendData = function () {
        var data = {
            "userId":"mdrodri",
            "token":"840430482834947828876768058086529370654",
            "domain":"MX",
            "filters":{
                "timeFrameType":"Week (FiscalYear)",
                "custMembSelectionType":"TOTAL",
                "locationSelectionType":"Country",
                "merchandiseSelectionType":"SBU",
                "startYear":"2015",
                "endYear":"2015",
                "startUnit":"1",
                "endUnit":"1",
                "comparator":false,
                "locationSelections":["CA"],
                "merchandiseSelections":["SBU38"],
                "custMembSelections":["TOTAL"],
                "metricSelections":["Product Sales (Category Rank)"],
                "rankOrder":"10"
            },
            "additionalFilters":[],
            "cache":false
        };

        var config = {
            headers : {
                'Content-Type': 'application/json;'
            }
        }

        $http.post('http://whateverurl/', data, config)
            .success(function (data, status, headers, config) {
                $scope.PostDataResponse = data;
                console.log("Success");
            })
            .error(function (data, status, header, config) {
                $scope.ResponseDetails = "Data: " + data +
                    console.log("Data: " + data);
                    console.log("Status: " + status);
                    console.log("Headers: " + header);
                    console.log("Config: " + config);
            });

    };

})

在我的HTML中,这就是我如何调用该控制器

 <div class="panel panel-default" ng-controller="HttpGetTestController">

感谢您的时间和帮助。

1 个答案:

答案 0 :(得分:1)

您需要在控制器中调用$ scope.SendData()函数:

      .controller("HttpGetTestController", function ($scope, $http) {
        $scope.SendData = function () {
           //your code ...
         }
       //then the calling 
       $scope.SendData();//here
}