将工厂注入控制器并不能在1.6角度下工作

时间:2017-08-03 20:01:12

标签: javascript angularjs angularjs-1.6

我对这个疯狂了。

我有3个文件: app.js, app.services.provider.js, admin.js

在app.js中我定义了我的模块:

(function() {

    angular.module('myApp', ['ngRoute']).config(function ($routeProvider) {
         $routeProvider 
        .when("/admin", {
            templateUrl : "Admin.htm",
            controller: "AdminController"
        }).otherwise( {redirectTo: '/'} ) ;
    })

})();

现在在app.services.provider.js我定义了一个工厂:

(function() {

 angular.module("myApp").factory('appServicesProvider',function($scope, $http ) {
      function someFunction(){

      }

      return{someFunction:someFunction}

    });

})();

在admin.js中我有我的控制器:

(function() {

angular.module("myApp")
.controller("AdminController",function($scope, $http, appServicesProvider) {

});

})();

现在我相信我在index.html中以正确的顺序包含了JS:

<script src="js/app.js"></script>
<script src="js/app.services.provider.js"></script>
<script src="js/admin.js"></script>

然而,当我尝试运行代码时,我得到了异常:

angular.min.js:122 Error: [$injector:unpr] http://errors.angularjs.org/1.6.1/$injector/unpr?p0=<ng-view class="ng-scope">copeProvider%20%3C-%20%24scope%20%3C-%20appServicesProvide

我似乎无法理解何时出错

我尝试了几件事:

  • 我尝试在headbody标记
  • 末尾添加脚本
  • 我尝试删除(function() {})();
  • 我尝试在var中引用我的模块,即var app = angular.module(...)并在文件中使用变量
  • 我试过注入&#34; AppServices&#34;像这样: angular.module("myApp") .controller("AdminController",["$scope","$http","appServicesProvider",function($scope, $http, appServicesProvider) {...

它仍然显示该死的错误。

任何人都知道可能出现什么问题?

感谢您的帮助, 埃里克

1 个答案:

答案 0 :(得分:2)

错误是因为您尝试将$scope注入服务中。服务没有$scope