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