Angularjs - $uibModal 提供程序错误
Angularjs - $uibModal provider error
我试图将 $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;
}
我认为我注入不正确,但这可能与我包含源文件的方式有关。
除上述错误外,我没有收到任何控制台错误。
我的 angular 代码更喜欢这种语法,所以我希望修复我的代码而不是使用 ('controllername', ['$stuff', 'moreStuff' ]).
在此先感谢您的帮助。
你应该在使用它之前注入依赖模块。你的代码应该是这样的:
angular
.module('tecApp',['ui.bootstrap'])
将 ui.bootstrap
模块注入您的应用程序模块:
angular.module("tecApp", ["ui.bootstrap"])
您还可以使用来自 ui.bootstrap
模块的 $modal
(也许更好)服务而不是 $uibModal
我今天花了 3 个小时才弄清楚 "angular-bootstrap": "0.12.2"
现在应该是 "angular-ui-bootstrap": "1.1.2" 在你的包裹 json.
我无法理解为什么在 angular-bootstrap 中找不到版本 1.1.2 ...
它现在很有魅力!
希望对您有所帮助...:)
它对我有用。我有 angularJS 版本 1.2.16。 ui-bootstrap的兼容版本是0.12.0。使用前需要google兼容版本。
我尝试解决我的问题。
安装最新版本 angular-bootstrap
npm install angular-bootstrap or bower install angular-bootstrap
我试图将 $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;
}
我认为我注入不正确,但这可能与我包含源文件的方式有关。
除上述错误外,我没有收到任何控制台错误。
我的 angular 代码更喜欢这种语法,所以我希望修复我的代码而不是使用 ('controllername', ['$stuff', 'moreStuff' ]).
在此先感谢您的帮助。
你应该在使用它之前注入依赖模块。你的代码应该是这样的:
angular
.module('tecApp',['ui.bootstrap'])
将 ui.bootstrap
模块注入您的应用程序模块:
angular.module("tecApp", ["ui.bootstrap"])
您还可以使用来自 ui.bootstrap
模块的 $modal
(也许更好)服务而不是 $uibModal
我今天花了 3 个小时才弄清楚 "angular-bootstrap": "0.12.2"
现在应该是 "angular-ui-bootstrap": "1.1.2" 在你的包裹 json.
我无法理解为什么在 angular-bootstrap 中找不到版本 1.1.2 ...
它现在很有魅力!
希望对您有所帮助...:)
它对我有用。我有 angularJS 版本 1.2.16。 ui-bootstrap的兼容版本是0.12.0。使用前需要google兼容版本。
我尝试解决我的问题。
安装最新版本 angular-bootstrap
npm install angular-bootstrap or bower install angular-bootstrap