首頁 >web前端 >js教程 >為什麼我在遷移到 AngularJS 版本 1.3 時收到'[$injector:modulerr]”錯誤?

為什麼我在遷移到 AngularJS 版本 1.3 時收到'[$injector:modulerr]”錯誤?

Barbara Streisand
Barbara Streisand原創
2024-11-02 05:18:30819瀏覽

Why am I getting the `[$injector:modulerr]` error when migrating to AngularJS version 1.3?

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中文網其他相關文章!

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