AngularJS 模塊

AngularJS 模塊定義了一個應用程序。

模塊是應用程序不同部分的容器。

模塊是應用程序控制器的容器。

控制器始終屬于某個模塊。

創建模塊

通過使用 AngularJS 函數,angular.module 創建一個模塊:

<div ng-app="myApp">...</div>
<script>
var app = angular.module("myApp", []);
</script>
"myApp" 參數指的是應用程序將在其中運行的 HTML 元素。

現在,您可以在 AngularJS 應用程序中添加控制器、指令、過濾器等。

添加控制器

向您的應用程序添加一個控制器,并使用 ng-controller 指令引用該控制器:

實例

<div ng-app="myApp" ng-controller="myCtrl">
{{ firstName + " " + lastName }}
</div>
<script>
var app = angular.module("myApp", []);
app.controller("myCtrl", function($scope) {
  $scope.firstName = "Bill";
  $scope.lastName = "Gates";
});
</script>

親自試一試

您將在本教程后面了解有關控制器的更多信息。

添加指令

AngularJS 有一組內置指令,您可以使用它們向應用程序添加功能。

如需完整參考,請訪問我們的 AngularJS 指令參考。

此外,您可以使用模塊向您的應用程序添加自己的指令:

實例

<div ng-app="myApp" w3-test-directive></div>
<script>
var app = angular.module("myApp", []);
app.directive("w3TestDirective", function() {
  return {
    template : "I was made in a directive constructor!"
  };
});
</script>

親自試一試

您將在本教程的后面部分詳細了解指令。

文件中的模塊和控制器

在 AngularJS 應用程序中,將模塊和控制器放在 JavaScript 文件中是很常見的。

在此例中,"myApp.js" 包含應用程序模塊定義,而 "myCtrl.js" 包含控制器:

實例

<!DOCTYPE html>
<html>
<script src="https://cdn.staticfile.net/angular.js/1.6.9/angular.min.js"></script>
<body>
<div ng-app="myApp" ng-controller="myCtrl">
{{ firstName + " " + lastName }}
</div>
<script src="myApp.js"></script>
<script src="myCtrl.js"></script>
</body>
</html>

親自試一試

myApp.js

var app = angular.module("myApp", []);

模塊定義中的 [] 參數可用于定義依賴模塊。

如果沒有 [] 參數,則您不是在創建新模塊,而是在檢索現有模塊。

myCtrl.js

app.controller("myCtrl", function($scope) {
  $scope.firstName = "Bill";
  $scope.lastName= "Gates";
});

函數可能會污染全局命名空間

在 JavaScript 中應避免使用全局函數。 它們很容易被其他腳本覆蓋或破壞。

AngularJS 模塊通過將所有函數保留在模塊本地來減少這個問題。

何時加載庫

雖然在 HTML 應用程序中將腳本放置在 <body> 元素的末尾很常見,但建議您在 <head><body> 的開頭加載 AngularJS 庫。

這是因為只有在加載庫后才能編譯對 angular.module 的調用。

實例

<!DOCTYPE html>
<html>
<body>
<script src="https://cdn.staticfile.net/angular.js/1.6.9/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myCtrl">
{{ firstName + " " + lastName }}
</div>
<script>
var app = angular.module("myApp", []);
app.controller("myCtrl", function($scope) {
  $scope.firstName = "Bill";
  $scope.lastName = "Gates";
});
</script>
</body>
</html>

親自試一試