AngularJS 模块
AngularJS 模块定义了一个应用程序。
模块是应用程序不同部分的容器。
该模块是应用程序控制器的容器。
控制器始终属于一个模块。
创建一个模块
使用 AngularJS 函数 angular.module
创建一个模块:
<div ng-app="myApp">...</div>
<script>
var app = angular.module("myApp", []);
</script>
"myApp" 参数指的是应用程序将在其中运行的 HTML 元素。
现在,您可以向 AngularJS 应用程序添加控制器、指令、过滤器等。
添加一个控制器
将控制器添加到应用程序中,并使用 ng-controller
指令引用该控制器:
<!DOCTYPE html>
<html>
<script src="https://cdn.bootcdn.net/ajax/libs/angular.js/1.8.2/angular.min.js"></script>
<body>
<div ng-app="myApp" ng-controller="myCtrl">
{{ firstName + " " + lastName }}
</div>
<script>
var app = angular.module("myApp", []);
app.controller("myCtrl", function($scope) {
$scope.firstName = "John";
$scope.lastName = "Doe";
});
</script>
</body>
</html>
在本教程的后面部分,您将了解有关控制器的更多信息。
添加一个指令
AngularJS 有一组内置指令,可以用来向应用程序添加功能。
有关完整参考,请访问本站的 AngularJS 指令参考。
此外,您还可以使用该模块将自己的指令添加到应用程序中:
<!DOCTYPE html>
<html>
<script src="https://cdn.bootcdn.net/ajax/libs/angular.js/1.8.2/angular.min.js"></script>
<body>
<div ng-app="myApp" test-directive=""></div>
<script>
var app = angular.module("myApp", []);
app.directive("TestDirective", function() {
return {
template : "我是在指令构造器中生成的!"
};
});
</script>
</body>
</html>
在本教程的后面部分,您将了解有关指令的更多信息。
文件中的模块与控制器
在 AngularJS 应用程序中,将模块和控制器放入 JavaScript 文件是很常见的。
在本例中,"myApp.js" 包含应用程序模块定义,"myCtrl.js" 包含控制器:
实例
<!DOCTYPE html>
<html>
<script src="https://cdn.bootcdn.net/ajax/libs/angular.js/1.8.2/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(<strong>"myApp"</strong>, []);
模块定义中的 []
参数可用于定义从属模块。
如果没有 []
参数,就不会创建新模块,而是检索现有模块。
myCtrl.js
app.controller(<strong>"myCtrl"</strong>, function($scope) {
$scope.firstName = "John";
$scope.lastName= "Doe";
});
函数可能会污染全局命名空间
JavaScript 中应该避免使用全局函数。它们很容易被其他脚本覆盖或破坏。
AngularJS 模块通过将所有函数保持在模块本地,减少了这个问题。
何时加载库
虽然在 HTML 应用程序中,将脚本放在 <body> 元素的末尾很常见,但建议您在 <head> 或 <body> 的开头加载 AngularJS 库。
这是因为调用了 AngularJS。模块只能在加载库后编译。
实例
<!DOCTYPE html>
<html>
<body>
<script src="https://cdn.bootcdn.net/ajax/libs/angular.js/1.8.2/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 = "John";
$scope.lastName = "Doe";
});
</script>
<p>建议您在 head 或 body 开始处加载 AngularJS 库。</p>
</body>
</html>