首頁  >  文章  >  web前端  >  為什麼我在 AngularJS 遷移到版本 1.3 期間遇到“$injector:modulerr”錯誤?

為什麼我在 AngularJS 遷移到版本 1.3 期間遇到“$injector:modulerr”錯誤?

DDD
DDD原創
2024-11-01 00:10:02717瀏覽

Why Am I Getting the

Angularjs 錯誤:[$injector:modulerr] 在遷移到V1.3 期間

在Angularjsjs 中,錯誤[🎜>

在Angularjs ]表示模組依賴問題,特別是從早期版本遷移到V1.3 時。

V1.3 之前的Angularjs 程式碼:

<code class="html"><body>
  <div ng-controller="Ctrl">
    ...
    <script>
      var Ctrl = function($scope) {
        ...
      };
    </script>
  </div>
</body></code>

發佈-V1.3 Angularjs 程式碼:

<code class="html"><body ng-app="app">
  <div ng-controller="Ctrl">
    ...
  </div>
  <script>
    function Ctrl($scope) {
      ...
    }

    angular.module('app', [])
      .controller('Ctrl', ['$scope', Ctrl]);
  </script>
</body></code>

V1.3 的變更:

  1. 停用全域控制器宣告:
  2. Angularjs V1.3 之後,全域控制器函數不能在模組外部聲明。相反,控制器必須在模組內註冊。
  3. 所需的 ng-app 指令:
  4. ng-app 指令必須出現在根元素上才能引導 Angularjs 應用程式。
  5. 解決方案:

建立一個Angularjs 模組:
    使用一個名為'app ' 的模組。
  • 在模組中註冊控制器:
  • 在模組上呼叫 .controller() 來定義名為「Ctrl」的控制器,並具有適當的依賴項和控制器函數。
將 ng-app 加入根元素: 確保根 HTML 元素具有 ng-app 屬性。 附加說明:出於穩定性和安全考慮,建議使用最新版本的Angularjs(1.6或更高版本)。 如果需要支援全域控制器聲明,可以使用 angular.config().allowGlobalScoping()。然而,這不是最佳實踐。

以上是為什麼我在 AngularJS 遷移到版本 1.3 期間遇到“$injector:modulerr”錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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