web-dev-qa-db-ja.com

Angular JS Uncaught Error:[$ injector:modulerr]

エラーを受け取るAngular JSで問題が発生しました:Uncaught Error:[$ injector:modulerr]。私のJSファイルの外観

angular.module('MyApp', ['ngRoute']);
angular.module('MyApp',['ngResource']);
function TwitterCtrl($scope,$resource){
}

Angular-route-jsも含めました

 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular.min.js">     
 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular-route.min.js">

角度のドキュメントでは、問題は http://docs.angularjs.org/api/ngRoute

48
ig-melnyk

これを追加してみてください:

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular-resource.min.js"></script>
45
Lauri Elias

開発ではminified distributivesではないを使用することをお勧めします:そして、すべてのエラーはより有益になります!代わりにangle.min.jsはangular.jsを使用します

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular.js">     
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular-route.js">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular-resource.js">
37
ulmer-morozov

追加してみてください:

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular-resource.min.js">

そして:

angular.module('MyApp', ['ngRoute','ngResource']);
function TwitterCtrl($scope,$resource){
}

現在のコードでは、新しいMyAppモジュールoverwritingを作成しているため、すべての依存関係でangular.moduleを1回だけ呼び出す必要があります。前のもの。

angular documentation から:

Angular.module( 'myModule'、[])を使用すると、モジュールmyModuleが作成され、myModuleという名前の既存のモジュールが上書きされることに注意してください。 angular.module( 'myModule')を使用して、既存のモジュールを取得します。

34
Khanh TO

関数がクロージャでラップされていることを確認し、最後に追加の()を追加してください:

(function(){                                                                     

    var app = angular.module('myApp', []);                                     


})();  
12
ContextSwitch

以前にも同じ問題がありましたが、メインページ(app.js)に「index.html」(メインアプリケーション)を含めていないことに気付きました。そのため、AngularJSに必要なすべての依存関係を含めても、コンソールにそのエラーが表示される場合があります。したがって、メインページ内に必要なファイルを必ず含めるようにしてください。そうすれば、この問題は発生しません。

お役に立てれば。

6
AllJs

この問題は、ngRouteモジュールが含まれていないために発生しました。バージョン1.1.6以降は別の部分です。

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0rc1/angular-route.min.js"></script>

var app = angular.module('myapp', ['ngRoute']);

これは次から参照を取得しています: AngularJS 1.2 $ injector:modulerr David answer

4
Arun Sharma

ロードされていない別のモジュールに依存しているため、このエラーが発生しました。

angular.module( "app"、["kendo.directives"])。controller( "MyCtrl"、function(){} ...

そのため、すべてのAngularモジュールがありましたが、剣道モジュールはありませんでした。

4
Sibele Lima

同じ問題がありました。次のような関数の外側にAngular jsコードを入力する必要があります。

$( document ).ready(function() {});
4
Julia

angular.moduleを保持する変数が正しく構成されていることを確認してください。

これは「Uncaught Error:[$ injector:modulerr]」で失敗します:

var angApp = angular.module("angApp");

これは動作します:

var angApp = angular.module("angApp", []);

エラーメッセージが特定の1つのことを指し示していないため、卑劣なものです(そのため、さまざまな回答があります)。さらに、ほとんどのjsリンターは詳細をキャッチしません。頑張って!

3
isaacdre

私はまったく同じ問題を抱えていましたが、それを解決したのはクロージャを削除:

$(function(){
    var app = angular.module("myApp", []); 
    app.controller('myController', function(){
        ...
    });
});

なる:

var app = angular.module("myApp", []); 
app.controller('myController', function(){
    ...
});
2
L01c

Uncaught Error: [$injector:modulerr]を取得していて、angularモジュールにエラーが表示されている場合は、ng-appモジュールが重複しています。

2
Herb Williams

このエラーは、依存関係インジェクターが依存関係「ngResource」を見つけることができなかったことを意味します。受け入れられた回答のscriptタグは、この依存関係を提供します。

依存関係にカスタムモジュールを追加したが、依存関係を含む「.js」ファイルを含めるためのスクリプトタグを追加しなかった場合も、同じエラーが発生します。

1
Chandan Gupta

私も同じ問題を抱えていました。次のコード行をBundleConfig.csファイルから削除しましたが、コードは正常に機能しています。

BundleTable.EnableOptimizations = true;

1

それが役立つ場合にこれを投げるだけで、私はこの問題を抱えており、Angularをバンドルしたときに、メインアプリファイルを "AngularWebApp.js"ではなく "AngularWebApp"として参照したため、お役に立てれば。

1
Trevor Hart

Cdnリンクスクリプトタグ内にjavascriptをロードしないでください。AngularJsスクリプトのロードには、別個のスクリプトタグを使用してください。私は同じ問題を抱えていましたが、別の<script>を作成しました。その後、エラーは消えました。

0
user9359822