AngularJS:如何从JSON文件中获取特定id的数据

时间:2017-04-12 06:39:34

标签: javascript angularjs json model-view-controller

在我的控制器类中,我从URL获取特定用户的id,然后将其发送到服务OrderService现在在服务中我想从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 个答案:

答案 0 :(得分: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);
        }
    };
});