簡體   English   中英

在Angular JS工廠中無法訪問$ http響應數據

[英]Unable to access $http response data in Angular JS factory

我試圖將$http響應數據保存在angularJS工廠內部的變量中。 但是我無法在http方法之外訪問響應。 顯示為undefined 我檢查了此鏈接將$ scope注入角度服務function()請讓我知道如何處理。 下面是工廠代碼:

 angular.module('myapp') .factory('CardNumberFactory',['$http', function ($http) { // Service logic var details={}; $http.get('scripts/services/mock.json') .then(function(responce){ var resopnceData = responce.data; details=resopnceData; }); console.log(details); return {details:details}; }]); 

因為$ http服務是異步的。 您應該這樣做:

angular.module('myapp')
  .factory('CardNumberFactory',['$http', function ($http) {

    var details={};

    function getData() {
      return $http.get('scripts/services/mock.json')
       .then(function(response){
         return {details: response.data}
      });      
    }

    return {

        getData: getData

     }

}]);

angular.module('myapp').controller('TestController, function($scope,CardNumberFactory) {

  CardNumberFactory.getData().then(function(res) {
      //  res is the {details} object
  })

})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM