Javascript angular js自定义服务/工厂无法插入控制器/配置

Javascript angular js自定义服务/工厂无法插入控制器/配置,javascript,angularjs,dependency-injection,Javascript,Angularjs,Dependency Injection,我试图将自定义工厂注入控制器,但我得到了未知的提供者:ngResourceProvider请包含“angular-resource.js”“如果您正在使用ngResource。您可以在以下链接中找到cdn,您只能在.config中插入提供程序。尝试将UserService转换为提供程序而不是工厂UserSerivce是一种服务,因此不能像提供程序一样注入它。您不需要将服务注入app.config。您只需在控制器中注入就可以使用它。有两个地方出了问题 您将工厂服务传递给模块配置,就像提供程序一样,

我试图将自定义工厂注入控制器,但我得到了未知的提供者:ngResourceProvider请包含“angular-resource.js”“如果您正在使用ngResource。您可以在以下链接中找到cdn,

您只能在.config中插入提供程序。尝试将UserService转换为提供程序而不是工厂

UserSerivce是一种服务,因此不能像提供程序一样注入它。您不需要将服务注入app.config。您只需在控制器中注入就可以使用它。

有两个地方出了问题

  • 您将工厂服务传递给模块配置,就像提供程序一样,这是错误的
  • NGDI资源必须用于您的模块,而不是工厂
  • $resource DI必须用于工厂

  • 以下是代码正确的示例。

    但是我想使用factory我不能注入factory吗?尝试了没有使用请尝试我无法注入到Controller Too您是否从app.config中删除注入?如果是,那么错误是什么?如果你能做一个plnkr,它会更容易帮助你。
        <html >
    <head>
    <link rel="stylesheet"
        href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" />
    <link rel="stylesheet"
        href="//netdna.bootstrapcdn.com/font-awesome/4.0.0/css/font-awesome.css" />
        <link rel="stylesheet" href="./css/custom.css"/>
    <script src="./scripts/js/angular.min.js"></script>
    <script src="./scripts/js/angular-local-storage.min.js"></script>
    <script src="./scripts/js/angular-route.min.js"></script>
    <script src="./scripts/js/jquery.scrollbar.js"></script>
    <script src="./scripts/js/script.js"></script>
    </head>
    <body >
        <header>
            <nav class="navbar navbar-default">
                <div class="container">
                    <div class="navbar-header">
                        <a class="navbar-brand" href="/">Angular Routing Example</a>
                    </div>
    
                    <ul class="nav navbar-nav navbar-right">
                        <li><a href="#"><i class="fa fa-home"></i> Home</a></li>
                        <li><a href="#about"><i class="fa fa-shield"></i> About</a></li>
                        <li><a href="#contact"><i class="fa fa-comment"></i>
                                Contact</a></li>
                    </ul>
                </div>
            </nav>
        </header>
    
        <!-- MAIN CONTENT AND INJECTED VIEWS -->
        <div id="main" ng-app="myApp" ng-controller="mainController">
            <div ng-view></div>
    
        </div>
    </body>
    </html>
    
    var myApp = angular
            .module('myApp', [ 'ngRoute'])
    
    myApp.factory('UserService',['ngResource', function($resource) {
    
        return $resource('/login', {}, {
            login : {
                method : 'POST',
                params : {
                    'action' : 'authenticate'
                },
                headers : {
                    'Content-Type' : 'application/x-www-form-urlencoded'
                }
            },
        });
    }]);
    
    
    myApp.config([ '$routeProvider', '$locationProvider', '$httpProvider','$provide',
            function($routeProvider, $locationProvider, $httpProvider,$provide) {
                $routeProvider
    
                // route for the home page
                .when('/', {
                    templateUrl : 'pages/login.html',
                    controller : 'mainController'
                })
    
                // route for the about page
                .when('/dashbaord', {
                    templateUrl : 'pages/dashboard.html',
                    controller : 'dashbaordController'
                })
    
                $locationProvider.hashPrefix('!');
    
    
    
            } ]);
    
    myApp.controller('mainController',['UserService',function($scope,UserService) {
        function login() {
            alert("hi");
        }
        $scope.login = login;
    }]);
    
    myApp.controller('dashbaordController', function($scope) {
        $scope.message = 'Look! I am an about page.';
    });
    
    myApp.config([ '$routeProvider', '$locationProvider', '$httpProvider','$provide','UserService',
            function($routeProvider, $locationProvider, $httpProvider,$provide,UserService) {
                $routeProvider
    
                // route for the home page
                .when('/', {
                    templateUrl : 'pages/login.html',
                    controller : 'mainController'
                })
    
                // route for the about page
                .when('/dashbaord', {
                    templateUrl : 'pages/dashboard.html',
                    controller : 'dashbaordController'
                })
    
                $locationProvider.hashPrefix('!');
    
    
    
            } ]);