Angularjs: キャッチされないエラー: [$injector:modulerr] バージョン 1.3 への移行
AngularJS バージョン 1.3 では、互換性を壊す変更が導入されました以前のバージョン用に書かれたコードの一部。あなたの場合、グローバル コントローラー関数 (Ctrl) を AngularJS モジュールに登録するのではなく宣言しているため、[$injector:modulerr] エラーが発生しています。
AngularJS モジュールの定義
AngularJS 1.3 以降では、コントローラーを宣言する推奨される方法は、コントローラーを AngularJS モジュールに登録することです。モジュールは、コントローラー、ディレクティブ、サービス、フィルターなどの AngularJS コンポーネントを整理および構成するためのコンテナーとして機能します。
エラーの解決
エラーを解決するには、次のことを行う必要があります。 AngularJS モジュールを作成し、それに Ctrl コントローラーを登録します。コードの更新バージョンは次のとおりです。
<code class="javascript">function Ctrl($scope) { $scope.age = 24; } var myApp = angular.module('app', []); myApp.controller('Ctrl', ['$scope', Ctrl]);</code>
AngularJS 1.6 へのアップグレード
AngularJS 1.3 は非推奨になりました。 API がより安定し、パフォーマンスが向上した AngularJS バージョン 1.6 にアップグレードすることをお勧めします。 AngularJS 1.6 では、コントローラーを宣言するための推奨される方法は、クラスを使用することです:
<code class="typescript">export class Ctrl { constructor(public $scope: ng.IScope) { this.$scope.age = 24; } }</code>
そしてそれを AngularJS モジュールに登録します:
<code class="javascript">myApp.controller('Ctrl', Ctrl);</code>
これらのガイドラインに従うことで、正常に実行できます。 AngularJS アプリケーションをバージョン 1.3 に移行するか、最新バージョン 1.6 にアップグレードして [$injector:modulerr] エラーを解決してください。
以上がAngularJS バージョン 1.3 に移行すると `[$injector:modulerr]` エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。