2015-12-24 32 views
14

私は私のプロジェクトに$ uibModalを注入しようとしているが、しかし、時にコントローラの負荷、私は次のエラーを取得する:

Error: [$injector:unpr] Unknown provider: $uibModalProvider <- $uibModal <- abilityListController 

私は私のパッケージ管理のためのNuGetを使用しています。

Angularjs:1.4.8

ブートストラップ:3.3.6

角度-UI-ブートストラップ:

Index.htmlと

:0.14.3

がここに関連するコードです

<!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; 
} 

私は私が間違って注入していると思うが、それは私が私のソースファイルを含めましたどのように関係している可能性があります。

私は、上記のいずれかから別に何のコンソールエラーを取得していません。

私は、角度のコードでこの構文を好むので、私は自分のコードに修正を望んではなく(「コントローラ名」、[「$のもの」、「moreStuffを」])を使用しています。

ご協力いただきありがとうございます。

答えて

24

あなたがそれを使用する前に、依存モジュールを注入しなければなりません。アプリケーション・モジュールへの

angular 
    .module('tecApp',['ui.bootstrap']) 
2

を注入ui.bootstrapモジュール:

angular.module("tecApp", ["ui.bootstrap"]) 

また、あなたが$modalを使用することができます(そしておそらくそのさらに良い)の代わりに$uibModal

ui.bootstrapモジュールからサービスあなたのコードは次のようにする必要があります
+3

ありがとう!最後に、$ modalはui-bootstrapによって廃止され、$ uibModalの使用が好まれます。私はいくつかの違いがあると確信していますが、それらは同じように機能するようです。 – KoalaFanatic

+0

はい、definetely – Andrew

+0

これは私の問題を解決しました。私は角度1.4.9と角度-ui-bootstrap 1.3.2を使用し、公式ページ(https://angular-ui.github。io/bootstrap /)は、あなたは$ uibModalを使う必要があると書いていますが、それは私にとってはうまくいきませんでした。 – bonbon

8

私は"angular-bootstrap": "0.12.2"は今、「角度-UI-ブートストラップ」であることを把握するために、今日3時間を失った:「1.1.2」あなたのパッケージJSONで。バージョン1.1.2は、角度・ブートストラップで見つからなかった理由

私は理解できませんでした...

それは今、魔法のように動作します!

希望します。:)

+3

https://github.com/angular-ui/bootstrapと言う: "angle-ui-bootstrapをインストールしないでください"別のリポジトリ - bootstrap-bower - コンパイルされたjavascriptファイルとbower.jsonをホストします。 – Komo

0

私のために働いています。私はangularJSバージョン1.2.16を持っていました。 ui-bootstrapの互換バージョンは0.12.0です。互換性のあるバージョンのGoogleを使用する前に必ずGoogleに転送する必要があります。