Javascript AngularJS:$injector:使用ngAnimate时发生unpr错误

Javascript AngularJS:$injector:使用ngAnimate时发生unpr错误,javascript,angularjs,Javascript,Angularjs,我正在尝试将ngAnimate添加到我的angular应用程序依赖项中。这是我的angular应用程序文件: var carApp = angular.module("carApp", ["ngAnimate"]); <script type="text/javascript" src="js/carApp.js"></script> 这是我的TableBodyCtrl控制器: carApp.controller("TableBodyCtrl", function($

我正在尝试将
ngAnimate
添加到我的angular应用程序依赖项中。这是我的angular应用程序文件:

var carApp = angular.module("carApp", ["ngAnimate"]);
<script type="text/javascript" src="js/carApp.js"></script>
这是我的
TableBodyCtrl
控制器:

carApp.controller("TableBodyCtrl", function($scope, $http){
    $scope.loading = false;
    ...
});
这是我的
表格面板Ctrl

carApp.controller("TablePanelCtrl", function(){
    this.tab = 1;
    ...
});
我的控制器位于
controller
文件夹中的不同文件中

以下是角度库的脚本加载:

<script type="text/javascript" src="js/angular.min.js"></script>
<script type="text/javascript" src="js/angular-animate.min.js"></script> 

以下是我的angular应用程序文件的脚本加载:

var carApp = angular.module("carApp", ["ngAnimate"]);
<script type="text/javascript" src="js/carApp.js"></script>

以下是我的控制器的脚本加载:

<script type="text/javascript" src="js/controllers/TablePanelCtrl.js"></script>
<script type="text/javascript" src="js/controllers/TableBodyCtrl.js"></script>

当我运行web应用程序时,出现以下错误:

Unknown provider: $$qProvider <- $$q <- $animate <- $compile

https://docs.angularjs.org/error/$injector/unpr?p0=$$qProvider%20%3C-%20$$q%20%3C-%20$animate%20%3C-%20$compile

未知提供程序:$$qProvider我已设置了与您在此中提供的完全相同的设置

那里没有错误。你所做的是正确的

以“ngAnimate”作为依赖项的文件顺序和模块创建

var carApp = angular.module("carApp", ["ngAnimate"]);
这是正确的方法

尽管如此,有一点需要记住:

来自Angularjs

您可以指向两种类型的角度脚本URL,一种用于 开发和生产:

angular.js-这是人类可读的非小型版本, 适合web开发angular.min.js-这是缩小的 版本,我们强烈建议您在生产中使用

angular-animate.js也是如此

这将帮助您进行开发,同时向您显示更好的错误报告

另一点是,即使在使用缩小版angularjs时,您也会得到一个指向“长描述性”错误消息的链接,通过查看随错误消息提供的,我看到:

意外事件也可能导致未知提供程序错误 使用angular.module API重新定义模块,如中所示 下面的例子

angular.module('myModule', [])
.service('myCoolService', function () { /* ... */ });

angular.module('myModule', [])
// myModule has already been created! This is not what you want!
.directive('myDirective', ['myCoolService', function (myCoolService) {
  // This directive definition throws unknown provider, because myCoolService
  // has been destroyed.
}]);
要解决此问题,请确保在整个系统中只使用angular.module(name,[requires])语法定义每个模块一次 项目检索它以供以后使用angular.module(名称)。这个 固定示例如下所示。

angular.module('myModule', [])
.service('myCoolService', function () { /* ... */ });

angular.module('myModule')
.directive('myDirective', ['myCoolService', function (myCoolService) {
  // This directive definition does not throw unknown provider.
}]);

我也犯了同样的错误,只是想知道为什么会这样

根本原因是我依赖于“angular animate”:“~1.3.0”,因此bower使用angular v1.3,尽管项目的其余部分依赖于angular 1.2

只用

"angular-animate": "~1.2.0"
而不是

"angular-animate": "~1.3.0"
在您的bower.json文件中。在
bower安装之后
一切都应该正常


这里的答案相同:

我有同样的问题,由

bower update.

我也有同样的问题,原因似乎是这些库的版本之间存在冲突


v1.2
更新到
angularjsv1.3.14
后,我没有看到这个错误。尝试不同的版本并检查其兼容性。

您使用的是哪种角度?尝试添加它的调试版本以获得更多关于ErrorAngularJS动画的信息——AngularJS v1.3.0-build.3317+sha.a1648a7Nice one:)值得一提的是,bower自己安装的angular动画允许后缀@[ng版本],这是推荐的。如果我用的话,我会避免这个问题的。太好了。那是我的问题!我在使用AngularJSV1.2.9和http://..../1.3.3/angular-animate.min.js 所以我换了http://..../1.2.9/angular-animate.min.js 这个变化就像一个魔杖!目前(2015年9月),启动AngularJs多功能AngularJs主题的情况就是这样。ngAnimate版本>Angular版本不起作用。谢谢你帮我解决了这个问题。