首頁 >web前端 >js教程 >為什麼我的 AngularJS 控制器未定義,如何正確註冊它?

為什麼我的 AngularJS 控制器未定義,如何正確註冊它?

DDD
DDD原創
2024-12-16 06:07:15743瀏覽

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 中設定allowedGlobals 來重新啟用全域控制器:

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

其他注意事項:

  • 其他注意事項:
  • 其他注意事項:
其他注意事項:其他注意事項:確保包含ng-app 指令在應用程式的根元素上。 驗證正確的檔案包含在腳本中。 避免定義多次相同模組,因為這可能會覆蓋先前註冊的實體。

以上是為什麼我的 AngularJS 控制器未定義,如何正確註冊它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn