ホームページ > ウェブフロントエンド > jsチュートリアル > AngularJS で「コントローラーは関数ではありません。未定義です」というメッセージが表示されるのはなぜですか?

AngularJS で「コントローラーは関数ではありません。未定義です」というメッセージが表示されるのはなぜですか?

Susan Sarandon
リリース: 2024-12-04 03:24:11
オリジナル
510 人が閲覧しました

Why Am I Getting

グローバル コントローラー宣言は許可されません

最新バージョンの AngularJS (1.3 ) では、グローバル スコープでグローバルにコントローラーを定義することはサポートされなくなりました。 「コントローラーは関数ではありません。未定義です」というエラー メッセージは、この問題を示しています。

コントローラーを正しく登録するには、推奨される module.controller 構文を使用してください。以下に例を示します:

angular.module('app', [])
    .controller('ContactController', ['$scope', function ContactController($scope) {
        // Controller logic
    }]);
ログイン後にコピー

または、依存関係注入を使用します:

function ContactController($scope) {
    // Controller logic
}
ContactController.$inject = ['$scope'];
angular.module('app', []).controller('ContactController', ContactController);
ログイン後にコピー

グローバル コントローラーを許可する

破壊的変更として、グローバル コントローラー宣言は無効になりました。ただし、これは、allowGlobals を使用することで再度有効にすることができます。

angular.module('app')
    .config(['$controllerProvider', function($controllerProvider) {
        $controllerProvider.allowGlobals();
    }]);
ログイン後にコピー

追加の考慮事項

  • 正しい angular root 要素に ng-app ディレクティブが含まれていることを確認してください。 .
  • 正しいスクリプト ファイルが存在することを確認します。
  • 同じモジュールを複数回定義しないでください。以前に登録されたエンティティが消去される可能性があります。

以上がAngularJS で「コントローラーは関数ではありません。未定義です」というメッセージが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート