2012-10-20 13 views
16

EDITのロードに失敗:これは私が最初に罰金ロードアプリを持っているIE(IE10でテスト)AngularJSはモジュールに

で発生しリフレッシュしたときに、しかし、それはこのエラーを与える:

SCRIPT5022: No module: myAppModule

myAppModuleあるローディング後にロードされapp.jsで定義された角度モジュールは

angular.module('myAppModule', []); 

をangular.jsを介して自動的にブートストラップされる:

次のようにの
<html ng-app="myAppModule"> 

スクリプトは(無AMDローダー)ロードされます。

<script>window.jQuery || 
    document.write('<script src="js/vendor/jquery-1.8.0.min.js"></script>')</script> 
<script>window.angular || 
    document.write('<script src="js/vendor/angular-1.0.2.min.js"></script>')</script> 

<script src="js/app.js"></script> 
<script src="js/controller.js"></script> 

私はangularjsは、アプリケーション最初と自動ブートストラップを読み込まなっているが、app.jsはまだ

ロードされていないことを数えます
+0

まあ、これは非常に奇妙なことですが、AngularJSは通常、完全にロードされた後でboostrapingモジュールを起動します。より多くの情報を共有することができます:ブラウザ、アプリケーション(よりシンプルなスクリプタトタグまたはAMD)へのリンク、より多くのコードなどを読み込む方法。 –

+3

が編集されました。 app.jsに読み込む前にAngularJSが完全に読み込まれていると思いますか?これは可能ですか? – nehz

+0

好奇心を要しない:通常の

3

私はこの非常に同じ問題を抱えていましたが、IE9のみでした。より新しいブラウザと同様、IEの下位バージョンも実際にうまく機能しました。

手動でブートストラップを実行しても問題は解決しましたが、モジュールの一部であるフィルタには「不明なプロバイダ」というエラーが表示されました。フィルタはまだ期待どおり機能しているように見えます。

最後に、私の問題を解決し、エラーが発生しなくなったという解決策は、単にモジュールファイルの名前をモジュールと同じに変更することでした。

私のモジュールの名前がmyAppModuleだったら、ファイル名はmyAppModule.jsで、my_app_module.jsではないはずです。

6

そしてここで、最初にチェックするためのいくつかの他の事している私は私が間違ってやっていたものを見つけたとき、私はと馬鹿のように感じたが、ケースには、あなたは私に似ている:子モジュールがロードされていることを確認し

  1. を最初。私の場合は、子モジュールが親モジュールの前に物理的に配置されていることを確認する必要がありました。これを確認するには、各モジュールのinit行にブレークポイントを設定します。
  2. 正しい物理的順序であっても、実行順序はまだオフです。私のモジュールの1つは自己実行機能でラップされ、もう1つは機能しませんでした。 Doh。
  3. 実際にこのエラーがコンソールに2回表示される子機能にエラーがありました。私はこのような構文を使用しますので、これは次のとおりです。ある時点で

    var mod = angular.module("blah", []); 
    mod.filter("filterName", function(){ ... }); 
    

    モジュールを起動するとき、私は、空の括弧を忘れてしまったので、行は次のように見て、このエラーを投げた:

    var mod = angular.module("blah"); // <-- wrong 
    

要約すると、子モジュールが最初に実行され、エラーがないことを確認してください。

0

ところで、角度1.0.6を使用すると、角度(ハードコードされたスクリプトタグ)の前にjQueryをロードすると、IE10は 'モジュールなし'エラーをスローします。

これを修正するための唯一の方法は、手動でブートストラップし、他のすべての子モジュール参照(前述のBarnabasのように)後にモジュールがロードされたことを確認することです。

0

IEで同じ問題が発生しました。それは、(いくつかの猫がキーボードの上に強化している必要があります)タイプミスによって引き起こされた:

<script type=" text/javascript" src="assets/js/app.js"></script> 

タイプ属性の値の先頭にスペースが問題を引き起こしていました。それが削除されるとすぐに、アプリは再び正常に動作しました。

1
app.config(['$stateProvider', ($stateProvider) => { 
    $stateProvider.state('login', { 
    url: '/login', 
    templateUrl: 'partials/login.html' 
    }).state('dashboard', { 
    url: '/dashboard', 
    templateUrl: 'partials/dashboard.html' 
    }) 
}]) 

私の場合、Internet Explorerは矢印機能が嫌いでした。これらをfunction(){}に変更すると、問題が解決しました。

app.config(['$stateProvider', function ($stateProvider) { 
    $stateProvider.state('login', { 
    url: '/login', 
    templateUrl: 'partials/login.html' 
    }).state('dashboard', { 
    url: '/dashboard', 
    templateUrl: 'partials/dashboard.html' 
    }) 
}]) 
関連する問題