Angularjs:遷移到版本1.3 時未捕獲錯誤:[$injector:modulerr]
AngularJS 1.3 版本引入了一項破壞相容性的更改為先前版本編寫的程式碼。在您的情況下,您遇到 [$injector:modulerr] 錯誤,因為您聲明了一個全域控制器函數 (Ctrl),而不是使用 AngularJS 模組註冊它。
定義 AngularJS 模組
在 AngularJS 1.3 及更高版本中,聲明控制器的首選方法是透過 AngularJS 模組註冊它。模組可作為組織和配置 AngularJS 元件(如控制器、指令、服務和過濾器)的容器。
解決錯誤
要解決錯誤,您需要建立一個 AngularJS 模組並向其註冊您的 Ctrl 控制器。這是程式碼的更新版本:
<code class="javascript">function Ctrl($scope) { $scope.age = 24; } var myApp = angular.module('app', []); myApp.controller('Ctrl', ['$scope', Ctrl]);</code>
升級到 AngularJS 1.6
AngularJS 1.3 現已棄用。建議升級到AngularJS 1.6版本,該版本具有更穩定的API和更高的效能。在AngularJS 1.6 中,宣告控制器的首選方法是透過類別:
<code class="typescript">export class Ctrl { constructor(public $scope: ng.IScope) { this.$scope.age = 24; } }</code>
並將其註冊到AngularJS 模組:
<code class="javascript">myApp.controller('Ctrl', Ctrl);</code>
透過遵循這些準則,您可以成功將您的AngularJS 應用程式遷移到版本1.3 或升級到最新版本1.6 並解決[$injector:modulerr]錯誤。
以上是為什麼我在遷移到 AngularJS 版本 1.3 時收到“[$injector:modulerr]”錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!