2017-04-12 135 views
2

在我的控制器类中,我从URL中获取特定用户的id,然后将其发送到服务OrderService现在,在服务中,我想从JSON中检索此id的数据文件,我怎样才能做到这一点?AngularJS:如何从JSON文件中获取特定id的数据

OrderCtrl

'use strict'; 
angular.module('Orders').controller('OrderCtrl', ['$scope', '$state', "SettingService", "OrderService","$stateParams", function($scope, $state, SettingService, OrderService,$stateParams) { 


var OrderId = $stateParams.orderId; 

$scope.orders = []; 

    OrderService.getOrderDetails(OrderId).then(function(response){ 
    $scope.orders = response.data.data; 
    }, function(error){ 

    }) 

}]); 

OrderService.js

angular.module('Orders') 
    .service('OrderService', ['$http', '$state', '$resource', '$q', 'SettingService', '$localStorage', "MessageService", 
    function($http, $state, $resource, $q, SettingService, $localStorage, MessageService) { 
     var service = { 
      getOrderDetails : function(OrderId){ 
      Here I want to retrieve data from JSON file 

    }); 
      } 

     } 

     return service; 
    }]); 
+1

这取决于你的参数和结果数据的样子。通常情况下,如果JSON位于本地源文件夹中,则可以在服务方法 – devnull69

+1

中执行如'return $ http.get(“path/and/parameters”)''的操作,然后可以使用http get调用该文件@ devnull69如果它被托管在不同的服务器上,那么你应该有相应的URL来调用该文件 –

回答

0

尝试使用这样的事情

'use strict'; 
angular.module('Orders').controller('OrderCtrl', ['$scope', '$state', "SettingService", "OrderService", "$stateParams", function ($scope, $state, SettingService, OrderService, $stateParams) { 

    var OrderId = $stateParams.orderId; 
    $scope.orders = []; 

    OrderService.getOrderDetails(OrderId).then(function (response) { 
     $scope.orders = response.data.data; 
    }); 

}]); 

// I act a repository for the remote json collection. 
angular.module('Orders').service("OrderService", ['$http', '$state', '$resource', '$q', 'SettingService', '$localStorage', "MessageService", 
     function ($http, $state, $resource, $q, SettingService, $localStorage, MessageService, handleResponse) { 
      // Return public API. 
      return ({ 
       getOrderDetails: getOrderDetails 
      }); 
      // I get all the remote collection. 
      function getOrderDetails(OrderId) { 
       var request = $http({ 
        method: "get", 
        url: '/ajax/order/details', // for example 
        params: {'id': OrderId} 
       }); 
       return (request.then(handleResponse.success, handleResponse.error)); 
      } 
     }]); 

angular.module('Orders').service('handleResponse', function ($http, $q, $location) { 
    return { 
     error: function (response) { 
      // The API response from the server should be returned in a 
      // nomralized format. However, if the request was not handled by the 
      // server (or what not handles properly - ex. server error), then we 
      // may have to normalize it on our end, as best we can. 
      if (!angular.isObject(response.data) || !response.data.message) { 
       // Something was wrong, will try to reload 
       return ($q.reject("An unknown error occurred.")); 
      } 
      // Otherwise, use expected error message. 
      return ($q.reject(response.data.message)); 
     }, 
     success: function (response) { 
      return (response.data); 
     } 
    }; 
}); 
+0

为什么我的回答被低估? – Oyeme

相关问题