我正在尝试将$ uibModal注入到我的项目中,但是当控制器加载时,我收到以下错误:
Error: [$injector:unpr] Unknown provider: $uibModalProvider <- $uibModal <- abilityListController
我正在使用NuGet进行包管理。
Angularjs:1.4.8
Bootstrap:3.3.6
Angular-Ui-Bootstrap:0.14.3
以下是相关代码:
的index.html
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8" />
<link href="Content/bootstrap.css" rel="stylesheet" />
<script src="scripts/angular.js"></script>
<script src="scripts/angular-ui/ui-bootstrap.js"></script>
<script src="app/app.js"></script>
<script src="app/homeController.js"></script>
<script src="app/abilityList/abilityListController.js"></script>
</head>
<body>
<div ng-app="tecApp">
<div ng-controller="homeController as vm">
</div>
<div ng-controller="abilityListController as vm" ng-if="true">
<div ng-include="'app/abilityList/abilityList.html'"></div>
</div>
</div>
</div>
</body>
</html>
app.js:
angular.module("tecApp", []);
AbilityListController.js:
angular
.module('tecApp')
.controller('abilityListController', AbilityListController);
AbilityListController.$inject = ['$uibModal'];
function AbilityListController($uibModal) {
var vm = {};
return vm;
}
我认为我注射错误,但这可能与我如何包含我的源文件有关。
除了上面提到的错误之外,我没有出现控制台错误。
我更喜欢这种语法用于我的角度代码,所以我希望修复我的代码而不是使用('controllername',['$ stuff','moreStuff'])。
提前感谢您的帮助。
答案 0 :(得分:30)
您应该在使用之前注入依赖模块。你的代码应该是这样的:
angular
.module('tecApp',['ui.bootstrap'])
答案 1 :(得分:15)
我今天失去了3个小时,以确定"angular-bootstrap": "0.12.2"
现在应该是&#34; angular-ui-bootstrap&#34;:&#34; 1.1.2&#34;在你的包json。
我无法理解为什么在角度引导程序中找不到版本1.1.2 ......
它现在就像一个魅力!
希望它有帮助...:)
答案 2 :(得分:3)
将ui.bootstrap
模块注入您的应用程序模块:
angular.module("tecApp", ["ui.bootstrap"])
此外,您可以使用$modal
模块中的ui.bootstrap
(可能更好)服务,而不是$uibModal
答案 3 :(得分:0)
它对我有用。我有angularJS版本1.2.16。 ui-bootstrap的兼容版本是0.12.0。在使用之前,需要google兼容版本。
答案 4 :(得分:0)
我尝试解决问题。
npm install angular-bootstrap or bower install angular-bootstrap