模塊
創(chuàng)建模塊
通過使用 AngularJS 函數(shù),angular.module
創(chuàng)建一個模塊:
<div ng-app="myApp">...</div> <script> var app = angular.module("myApp", []); </script> "myApp" 參數(shù)指的是應(yīng)用程序?qū)⒃谄渲羞\行的 HTML 元素。
現(xiàn)在,您可以在 AngularJS 應(yīng)用程序中添加控制器、指令、過濾器等。
添加控制器
向您的應(yīng)用程序添加一個控制器,并使用 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>運行實例 ?
點擊 "運行實例" 按鈕查看在線實例
您將在本教程后面了解有關(guān)控制器的更多信息。
添加指令
AngularJS 有一組內(nèi)置指令,您可以使用它們向應(yīng)用程序添加功能。
如需完整參考,請訪問我們的 AngularJS 指令參考。
此外,您可以使用模塊向您的應(yīng)用程序添加自己的指令:
實例
<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 應(yīng)用程序中,將模塊和控制器放在 JavaScript 文件中是很常見的。
在此例中,"myApp.js" 包含應(yīng)用程序模塊定義,而 "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", []);
模塊定義中的 [] 參數(shù)可用于定義依賴模塊。
如果沒有 [] 參數(shù),則您不是在創(chuàng)建新模塊,而是在檢索現(xiàn)有模塊。
myCtrl.js
app.controller("myCtrl", function($scope) { $scope.firstName = "Bill"; $scope.lastName= "Gates"; });
函數(shù)可能會污染全局命名空間
在 JavaScript 中應(yīng)避免使用全局函數(shù)。 它們很容易被其他腳本覆蓋或破壞。
AngularJS 模塊通過將所有函數(shù)保留在模塊本地來減少這個問題。
何時加載庫
雖然在 HTML 應(yīng)用程序中將腳本放置在 <body>
元素的末尾很常見,但建議您在 <head>
或 <body>
的開頭加載 AngularJS 庫。
這是因為只有在加載庫后才能編譯對 angular.module
的調(diào)用。
實例
<!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>運行實例 ?
點擊 "運行實例" 按鈕查看在線實例