ホームページ >ウェブフロントエンド >jsチュートリアル >AngularJS コントローラーが未定義なのはなぜですか? 正しく登録するにはどうすればよいですか?

AngularJS コントローラーが未定義なのはなぜですか? 正しく登録するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-16 06:07:15738ブラウズ

Why is my AngularJS Controller undefined, and how can I register it correctly?

AngularJS のエラー: コントローラーの登録

質問:

コントローラーをグローバルに定義しようとしたときAngularJS アプリケーションで、「コントローラーは関数ではありません。未定義です」というエラーが発生する

答え:

AngularJS 1.3 以降、グローバル コントローラー宣言はサポートされなくなりました。コントローラーは module.controller 構文を使用して登録する必要があります。

登録メソッド:

  1. .controller() の使用メソッド:
angular.module('app', []).controller('ContactController', ['$scope', function($scope) {
  // Controller logic
}]);
  1. 依存性注入の使用:
function ContactController($scope) {
  // Controller logic
}
ContactController.$inject = ['$scope'];
angular.module('app', []).controller('ContactController', ContactController);

代替: グローバルを許可

グローバルの使用コントローラーは、$controllerProvider:

angular.module('app').config(['$controllerProvider', function($controllerProvider) {
  $controllerProvider.allowGlobals();
}]);

でallowGlobalsを設定することで再度有効にできます。追加の考慮事項:

  • ng-app ディレクティブが含まれていることを確認してください。アプリケーションのルート要素。
  • 正しいファイルが含まれていることを確認してください。 scripts.
  • 以前に登録されたエンティティを上書きする可能性があるため、同じモジュールを複数回定義しないでください。

以上がAngularJS コントローラーが未定義なのはなぜですか? 正しく登録するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。