是否可以在 AngularJs 中将工厂注入服务



我在工厂中创建了一个函数

App.factory('CustomHttpRequest', function ($http, $q) {
        return {
            ajaxRequest: function () {
                return "test";
            }
        }
    });

我想在如下所示的服务中访问它

hhwtApp.service('listPlacesService', ['$rootScope', 'CustomHttpRequest', function($rootScope, CustomHttpRequest) {
        this.listPlacesData = function () {
            CustomHttpRequest.ajaxRequest();
        }
    }]);

是的,你可以像下面这样使用,你几乎接近......

var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope,listPlacesService) {
  $scope.name = 'World';
  $scope.checking =listPlacesService.listPlacesData();
  console.log($scope.checking);
  
});
app.service('listPlacesService', [ 'CustomHttpRequest', function( CustomHttpRequest) {
     this.listPlacesData = function () {
            return CustomHttpRequest.ajaxRequest();
        }
    }]);
    app.factory('CustomHttpRequest', function () {
  
        return {
            ajaxRequest: function () {
                return "test";
            }
        }
    });
<!DOCTYPE html>
<html ng-app="plunker">
  <head>
    <meta charset="utf-8" />
    <title>AngularJS Plunker</title>
    <script>document.write('<base href="' + document.location + '" />');</script>
    <link rel="stylesheet" href="style.css" />
    <script data-require="angular.js@1.4.x" src="https://code.angularjs.org/1.4.12/angular.js" data-semver="1.4.9"></script>
    <script src="app.js"></script>
  </head>
  <body ng-controller="MainCtrl">
    <p>Hello {{checking}} done!</p>
  </body>
</html>

检查控制台,它将向控制器返回"测试"

你已经注入了它。确保模块已连接。

最新更新