Angularjs - $ uibModal提供程序错误

Koa*_*tic 17 javascript angularjs angular-ui-bootstrap

我正在尝试将$ uibModal注入到我的项目中,但是当控制器加载时,我收到以下错误:

Error: [$injector:unpr] Unknown provider: $uibModalProvider <- $uibModal <- abilityListController
Run Code Online (Sandbox Code Playgroud)

我正在使用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>
Run Code Online (Sandbox Code Playgroud)

app.js:

angular.module("tecApp", []);
Run Code Online (Sandbox Code Playgroud)

AbilityListController.js:

angular
    .module('tecApp')
    .controller('abilityListController', AbilityListController);

AbilityListController.$inject = ['$uibModal'];

function AbilityListController($uibModal) {
    var vm = {};
    return vm;
}
Run Code Online (Sandbox Code Playgroud)

我想我注射不正确,但它可能与我如何包含我的源文件有关.

除了上面提到的那个,我没有控制台错误.

我更喜欢这种语法用于我的角度代码,所以我希望修复我的代码而不是使用('controllername',['$ stuff','moreStuff']).

在此先感谢您的帮助.

Gan*_*ala 34

您应该在使用之前注入依赖模块.你的代码应该是这样的:

angular
    .module('tecApp',['ui.bootstrap'])
Run Code Online (Sandbox Code Playgroud)


max*_*992 17

我今天失去了3个小时才弄清楚"angular-bootstrap": "0.12.2"现在应该是你的包json中的"angular-ui-bootstrap":"1.1.2".

我无法理解为什么在angular-bootstrap中找不到版本1.1.2 ...

它现在就像一个魅力!

希望能帮助到你 ... :)

  • https://github.com/angular-ui/bootstrap说:"不要安装angular-ui-bootstrap'.一个单独的存储库 - bootstrap-bower - 托管已编译的javascript文件和bower.json." (3认同)