プロジェクトに$ uibModalを挿入しようとしていますが、コントローラーがロードされると、次のエラーが表示されます。
Error: [$injector:unpr] Unknown provider: $uibModalProvider <- $uibModal <- abilityListController
パッケージ管理にNuGetを使用しています。
Angularjs:1.4.8
ブートストラップ: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'])
"angular-bootstrap": "0.12.2"
は、パッケージjsonで「angular-ui-bootstrap」:「1.1.2」になります。
アンギュラーブートストラップでバージョン1.1.2が見つからなかった理由を理解できませんでした...
今では魔法のように動作します!
それが役に立てば幸い ... :)
挿入ui.bootstrap
アプリケーションモジュールへのモジュール:
angular.module("tecApp", ["ui.bootstrap"])
また、$modal
(そしておそらくもっと良い)からのサービスui.bootstrap
モジュールの代わりに$uibModal
それは私のために働いた。 angularJSバージョン1.2.16がありました。 ui-bootstrapの互換バージョンは0.12.0です。使用する前に、常に互換バージョンをグーグルで検索する必要があります。
私は自分の問題を解決しようとします。
npm install angular-bootstrap or bower install angular-bootstrap