
問題: グローバル コントローラー宣言エラー
Angular 1.3 では、グローバル スコープでのグローバル コントローラー宣言の使用が非推奨になりました。この問題は、「引数 'ContactController' は関数ではないため、未定義です」というエラーとして現れ、明示的に登録せずにコントローラーをグローバルに定義できなくなります。
解決策: モジュール構文を使用してコントローラーを登録する
これを修正するには、module.controller 構文を使用してコントローラーを登録する必要があります。例:
1 2 3 | angular.module( 'app' , []).controller( 'ContactController' , [ '$scope' , function ContactController( $scope ) {
}]);
|
ログイン後にコピー
または、コントローラーを関数として挿入できます。
1 2 3 4 5 | function ContactController( $scope ) {
}
ContactController. $inject = [ '$scope' ];
angular.module( 'app' , []).controller( 'ContactController' , ContactController);
|
ログイン後にコピー
グローバルをオンにする
グローバル宣言を使用したい場合は、でallowGlobalsを設定することでそれらを有効にできます。 $controllerProvider.
1 2 3 4 | angular.module( 'app' )
.config([ '$controllerProvider' , function ( $controllerProvider ) {
$controllerProvider .allowGlobals();
}]);
|
ログイン後にコピー
追加メモ
- アプリ名がルート要素の ng-app ディレクティブに含まれていることを確認してください (例: ng-app="myApp") ).
- 正しいスクリプトが含まれていることを確認してください。
- は避けてください。同じモジュールを異なる場所で 2 回定義すると、以前に登録されたエンティティが上書きされる可能性があります。
以上がAngular 1.3 の「引数 'ContactController' は関数ではありません」エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。