为什么我不在角度控制器中注入服务?

时间:2018-02-07 22:31:39

标签: javascript angularjs service module inject

我尝试在mi控制器中注入我的服务,但没有工作,Chrome控制台显示此错误:

  

angular.min.js:124错误:[$ injector:unpr] http://errors.angularjs.org/1.6.6/ $ injector / unpr?p0 = bookServiceProvider%20%3C-%20bookService%20%3C-%20bookController

我的HTML:

<html ng-app="myApp">
 <head>
  <script src="resources/jquery/jquery.min.js"></script>
  <script src="resources/angular/angular.min.js"></script>
  <script src="services/book.service.js"></script>
  <script src="controllers/book.controller.js"></script>
 </head>
<body ng-controller="bookController">

</body>

我的控制员:

(function () {
'use strict';

angular
    .module('myApp', [])
    .controller('bookController', bookController);

bookController.$inject = ['$location', '$rootScope', '$scope', 'bookService'];

function bookController($location, $rootScope, $scope, bookService) {
    var vm = this;


}
})();

当我尝试注入一些像toastr,其他服务等库...

时会发生这种情况

1 个答案:

答案 0 :(得分:1)

您似乎正在book.controller.js脚本中定义应用程序模块

以下部分创建一个新模块:

angular.module('myApp', []); // Creates and returns the "myApp" module

所以我怀疑你的bookService是在同一模块中声明的。

如果您已经有一个名为&#34; myApp&#34;的模块,那么只需将您的控制器连接到它:

angular.module('myApp'); // Returns a previously created module named "myApp"