如何移动 http 请求并将值传递给 AngularJS 服务

How to move a http request and pass value to an AngularJS Service

我正在尝试将此 http 请求移至服务,因为我是 AngularJS 的新手,所以我遇到了一些实际问题。你能帮我弄清楚如何不仅将 http 请求而且将 viewValue 从控制器移动到服务吗?

app.controller('poController', 
function poController($scope, $http, poService) {

    $scope.test = '';

    $scope.fetchPartNumbers = function ($viewValue) {                    
        return $http.get('/api/GetInventoryById/' + $viewValue
            ).then(function (res) {
            var PartNumbers = [];
            angular.forEach(res.data, function (item) {
                PartNumbers.push(item.PartNumber);
            });
            return PartNumbers;
        });
    };

});

我可以将 http 请求移过去,但我不确定如何将 $viewValue 移过去或让它在服务中也可以访问。

app.factory('poService', function () {

});

只需将其添加为参数即可:

app.factory('poService', function ($http) {
    return {
        fetchPartNumbers: function(value) {
            return $http.get('/api/GetInventoryById/' + value).then(function(res) {
                var PartNumbers = [];
                angular.forEach(res.data, function (item) {
                    PartNumbers.push(item.PartNumber);
                });
                return PartNumbers;
            });
        }
    }
});

和控制器

$scope.fetchPartNumbers = function ($viewValue) {
    poService.fetchPartNumbers($viewValue).then(function(data) {
        console.log(data)
    });
}