2016-03-15 94 views
1

我的angular.js服務沒有返回任何結果,我找不到原因。我沒有收到任何錯誤,當檢查控制檯時,我看不到服務器腳本被調用?爲什麼我的角度服務不返回任何結果

這是我的控制器功能:

$scope.getLeads = function() { 
      var promise = 
      LeadsSrv.all(); 
      promise.then(
      function(d) { 
       $scope.leads = d.data; 
       console.log(d); 
      }, 
      function(e) { 
       $log.error('failure loading leads', e); 
      }); 
     }; 
     console.log($scope.leads); 

被調用的服務是這樣的:

LeadApp.factory('LeadsSrv', function($http) { 
    return { 
     all: function() { 
      $http({ 
       url: '../Data.php', 
       method: "POST", 
       params: { req_id: 'leads_list', user_id: 1 } 
      }).then(function (response) { 
       return response; 
      }); 
     } 
    } 
}); 
+0

因爲LeadsSrv.all();是不是返回一個承諾 – Vanojx1

+0

你能告訴我如何實現這一目標嗎? –

+0

他們在答案中得到它 – Vanojx1

回答

1

all()方法不返回任何東西。從內部返回then()不返回到外部功能。您需要返回$http承諾本身

嘗試

LeadApp.factory('LeadsSrv', function($http) { 
    return { 
     all: function() { 
      // return `$http` promise 
      return $http({ 
       url: '../Data.php', 
       method: "POST", 
       params: { req_id: 'leads_list', user_id: 1 } 
      }).then(function (response) { 
       return response; 
      }); 
     } 
    } 
}); 
+0

似乎沒有電話給服務器? –

+0

根據什麼信息?使用瀏覽器開發工具網絡來檢查請求本身,並添加一個catch()處理程序 – charlietfl

0
LeadApp.factory('LeadsSrv', function($http) { 
    return { 
     all: function() { 
      return $http({ 
       url: '../Data.php', 
       method: "POST", 
       params: { req_id: 'leads_list', user_id: 1 } 
      }); 
     } 
    } 
}); 

希望嘗試做上述變化,將工作

相關問題