在前面的几个文章中,我们的数据都是以函数的方式定义在全局的作用域下,这样很显然是不对的,没有模块化的思想,下面的例子介绍Angular的模块化!
<!DOCTYPE HTML> <html ng-app="myApp"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>AngularJs模块化</title> <script type="text/javascript"src="https://code.angularjs.org/1.3.8/angular.min.js"> </head> <body> <div ng-controller='Aaa'> <p>{{name}}</p> </div> <div ng-controller='Bbb'> <p>{{name}}</p> </div> <script type="text/javascript"> var m1 = angular.module('myApp',[]); //参数1:模块的名字,参数2:当前模块中依赖的模块,後面的文章会介绍 m1.controller('Aaa',function($scope){ $scope.name = 'hello AngularJs'; }); m1.controller('Bbb',function($scope){ $scope.name = 'Hi'; }); </script> </body> </html>
首先在html上绑定初始化的名称,并附上myApp,使用angular.model在JS中定义多个模块,并附上参数。
再使用控制器定义数据,注意控制器传递的参数,模块名和匿名函数。
都知道我们的项目在上线後合并压缩的,这样我们匿名函数传递的形参在压缩後出现问题,所以这个时候我们需要将参数包裹成数组,来避免压缩的问题!
m1.controller('Aaa',['$scope',function($scope){ $scope.name = 'hello AngularJs'; }]); m1.controller('Bbb',['$scope',function($scope){ $scope.name = 'Hi'; }]);
这个时候注意控制器传递的参数,模块名和数组(包含服务和匿名函数)。