AngularJS バージョン 1.3 に移行すると `[$injector:modulerr]` エラーが発生するのはなぜですか?

Barbara Streisand
リリース: 2024-11-02 05:18:30
オリジナル
736 人が閲覧しました

Why am I getting the `[$injector:modulerr]` error when migrating to AngularJS version 1.3?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!