angularjs 1 onSuccess $$状态为空

时间:2018-04-06 12:04:51

标签: angularjs angularjs-1.6

在AngularJS v1.6.9中,我使用HTTP post方法调用我的API,但$$ state给我null,所以我无法给出我的列表。我尝试调试result = response.data给我列表但是当API调用服务但是后API函数也返回列表但在控制器中,我启用了获取那些数据。请帮助我

模块

 var adminDashbord = angular
.module('mymodel', ['ui.router', 'ui.bootstrap', 'datatables', 'datatables.buttons']);

我的API呼叫服务

mymodel.service('ApiCall', ['$http', function ($http) {

var result;
var retResult;
var data;


this.PostApiCall = function (controller, method, jData) {
    jData = JSON.stringify(jData);
    result = $http.post('http://localhost:2153/' + controller + '/' + method, jData).then(function onSuccess(response)
    {

        result = response.data;

    })
        .catch(function onError(response)
    {
        console.error("CustomError:" + response.data);
        console.error("Status:" + response.status);
    });


    return result;
};

在控制器中发布API,例如

mymodel.controller('productmasterController', ['$scope', 'ApiCall', 
   function ($scope, ApiCall) {
        $scope.init = function () 
         {
           $scope.getAllproduct();
         }

      $scope.getAllproduct = function () {
       var reqdata = null;
       result = ApiCall.PostApiCall("Product", "SelectAllProduct", reqdata).then(function (response) {


           $scope.getProduct = response.ProductList;



       });
   };

 }]);

我的问题是$$州给出了空洞的结果。

1 个答案:

答案 0 :(得分:1)

您有两种选择:

result = $http.post(url).then(function(response){
    return response.data;
})
return result;

OR

return $http.post(url).then(function(response){
    return response.data;
})

无论哪种方式,您都需要返回Http Promise$http.get request returns。如果您希望您的promise包含任何数据,您还需要在其中返回响应,因此使用第二个return(对于response.data)。