【问题标题】:AngularJS: How to fetch data of specific id from JSON fileAngularJS:如何从 JSON 文件中获取特定 id 的数据
【发布时间】:2017-09-07 19:06:24
【问题描述】:

在我的控制器类中,我从 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;
    }]);

【问题讨论】:

  • 这取决于您的参数和结果数据的样子。通常你会在你的服务方法中做类似return $http.get("path/and/parameters")的事情
  • 如果 JSON 位于您的本地源文件夹中,那么您可以使用@devnull69 提到的 http get 调用该文件,如果它托管在不同的服务器上,那么您应该有相应的 URL 来调用该文件跨度>

标签: javascript angularjs json model-view-controller


【解决方案1】:

尝试使用类似的东西

'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);
        }
    };
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-10-24
    • 1970-01-01
    • 2014-09-06
    • 2023-04-04
    • 2015-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多