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

Why i dont inject service in a angular controller?

我尝试在 mi 控制器中注入我的服务,但不起作用,chrome 控制台显示此错误:

angular.min.js:124 Error: [$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、其他服务等)时会发生这种情况...

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

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

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

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

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

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