【问题标题】:Why i dont inject service in a angular controller?为什么我不在角度控制器中注入服务?
【发布时间】:2018-07-18 08:50:43
【问题描述】:

我尝试在 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、其他服务等)时会发生这种情况......

【问题讨论】:

  • 您需要显示定义bookService 的代码,但Sébastien 的答案可能是正确的。

标签: javascript angularjs service module inject


【解决方案1】:

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

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

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

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

如果您已经有一个名为“myApp”的模块,那么只需将您的控制器附加到它:

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

【讨论】:

  • 谢谢!!我已经在我的服务和控制器中定义了模块!现在它的工作
猜你喜欢
  • 2015-03-21
  • 1970-01-01
  • 2016-08-28
  • 1970-01-01
  • 2016-10-18
  • 2013-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多