在AngularJs中,模块是定义应用的最主要方式。模块包含了主要的应用代码。
一个应用可以包含多个模块,每个模块都包含了定义具体功能的代码。
使用模块能给我们带来许多好处,比如:
1.保持全局命名空间的清洁;
2.编写测试代码更容易,并能保持其清洁,以便更容易找到相互隔离的功能;
3.易于在不同应用间复用代码;
4.使应用能够以任意顺序加载代码的各个部分。
AngularJs允许我们使用angular.modle()方法来声明模块,这个方法能够接受两个参数,第一个是模块的名称,第二个是依赖列表,也就是可以被依赖注入到模块中的对象列表。
andular.modle('myApp',[]);
注:这个方法相当于AngularJs模块的setter方法,是用来定义模块的。
angular.module('myApp');
注:这个防范用户获取应用,相当于AngularJs的getter方法,用来获取对模块的引用。
参数说明
1.name(字符串)
name是模块的名称,字符串变量。
2.requires(字符串数组)
requires包含了一个字符串变量组成的列表,每个元素都是一个模块名称,本模块依赖于这些模块,依赖需要在本模块加载由注入器 进行预加载。
实例1:
<ul ng-app="myApp" ng-controller="myCtrl">
<li ng-repeat="x in items track by $index">
<strong>{{x}}</strong>
</li>
</ul>
<script>
//自定义模块
var app = angular.module('myApp', []);
app.controller('myCtrl', function ($scope) {
$scope.items = [1, 2, 3, 2];
});
</script>
实例2:
<div class="alert alert-danger" ng-app="myApp" ng-controller="myCtrl">
{{a}}+{{b}}={{c}}
</div>
<script>
//自定义模块1,
angular.module('common', []).service('addition', function () {
this.add = function (a, b) {
return a + b;
}
});
//自定义模块2,依赖于模块一
var app = angular.module('myApp', ['common']);
app.controller('myCtrl', function ($scope, addition) {
$scope.a = 3;
$scope.b = 4;
$scope.c = addition.add($scope.a, $scope.b);
});
</script>