AngularJS 模塊
- 上一頁 AngularJS 表達式
- 下一頁 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>
- 上一頁 AngularJS 表達式
- 下一頁 AngularJS 指令