9

角度関連のページを読み込んでいるときに、IE-8で以下の例外に直面しています。他のブラウザでも問題なく動作します。特定の理由はありますか?

SCRIPT5022: Argument 'module' is not a function, got undefined 
angular.js, line 975 character 5
4

4 に答える 4

30

私はこれと同じ問題を抱えていました(IE <9の場合)、それを追跡するのに永遠にかかりました...

angular.module('app', ['app.directives', 'app.filters', 'app.services', ]);

'app.services'の後の末尾のコンマに注意してください。

于 2013-04-18T01:33:54.640 に答える
1

スクリプトタグをインラインで終了しようとすると、そのようなエラーが発生し、IEがすべてのスクリプトをロードしなくなります。すべてのスクリプトに含まれる終了タグがあるかどうかを確認します。

説明する:

<script src="js/services.js"></script>
<script src="js/controllers.js"/> <!-- THIS IS A PROBLEM FOR IE -->
<script src="js/filters.js"></script>
<script src="js/directives.js"></script>
<script src="js/myApp.js"></script>

IE9では、次のようになります。

SCRIPT5022: No module: myApp.filters 
angular.min.js, line 17 character 195

完全に同じではありませんが、IE8でテストすることはできません。ただし、Chromeではこれは完全に機能します。これについての奇妙なことは、実際にはそれが見つけられないように見えることであり、インラインで終わるものに続くスクリプトにあります。私はそれを本当に説明することはできません。

さて、次のようにスクリプトタグを閉じると:

<script src="js/services.js"></script>
<script src="js/controllers.js"></script> <!-- THIS WORKS -->
<script src="js/filters.js"></script>
<script src="js/directives.js"></script>
<script src="js/myApp.js"></script>

それは魅力のように機能します。

要約すると、AngularJSは「module」というモジュールを見つけようとしますが、見つけることができません。おそらく、ロードされていないスクリプトが原因です。インラインで閉じるスクリプトタグを見つけて、上記のように終了してください。

お役に立てば幸いです。

于 2013-03-24T13:49:11.200 に答える
1

これを引き起こす可能性のあるもう1つのことは、オブジェクトのプロパティにキーワードを使用することです。上記のエラーで3つのモジュールがありました:

statistic.import = !statistic.import;

default: $scope.newGrid.default

$scope.data = JSON.stringify({export: exportParams})

問題のあるプロパティは、importdefault、およびexportです。

于 2014-08-07T09:55:28.540 に答える
0

あなたがまだ同じ問題を歩き回っているかどうかはわかりませんが、考えられる原因を見つけました:

角度モジュールを宣言するときは、次のような依存関係を挿入する必要があります。

angular.module('MyStore', ['ng','ngRoute']);

別の場所からそのモジュールを呼び出してアクションを実行する必要がある場合、依存関係を再度挿入しようとするとおそらく不一致になります...次に、次のような名前でモジュールを呼び出す必要があります。

angular.module('myStore')

そうでなければ、あなたは解決策を探してあなたの脳を利用するでしょう。

お役に立てば幸いです。

于 2014-03-04T20:31:55.310 に答える