首頁 >web前端 >js教程 >如何修復 Angular 1.3 中的「參數'ContactController'不是函數」錯誤?

如何修復 Angular 1.3 中的「參數'ContactController'不是函數」錯誤?

Linda Hamilton
Linda Hamilton原創
2024-12-01 21:56:14437瀏覽

How to Fix

問題:全域控制器宣告錯誤

Angular 1.3 已棄用在全域範圍內使用全域控制器聲明。此問題表現為錯誤,指出“參數‘ContactController’不是函數,未定義”,從而阻止在未明確註冊的情況下全域定義控制器。

解決方案:使用模組語法註冊控制器

要解決此問題,應使用 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);

開啟全域

如果您喜歡使用全域聲明,您可以可以透過在$controllerProvider中設定allowGlobals來啟用它們。

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

其他注意

  • 確保您的應用程式名稱包含在根元素上的 ng-app 指令中(例如 ng-app="myApp")。
  • 驗證腳本是否正確
  • 避免在不同位置定義相同的模組兩次,因為這可能會覆蓋先前註冊的實體。

以上是如何修復 Angular 1.3 中的「參數'ContactController'不是函數」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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