之前我们看到使用ng-app指令,可以实现模块的自动加载。现在我们看下,angular中如何手动加载模块。需要使用到angular.bootstrap这个函数。
[html] view plaincopy
- <html>
- <head>
- <script src="angular.js"></script>
- <script>
- // 创建moudle1
- var rootMoudle = angular.module('moudle1', []);
- rootMoudle.controller("controller1",function($scope){$scope.name="aty"});
- // 创建moudle2
- var m2 = angular.module('moudle2', []);
- m2.controller("controller2",function($scope){$scope.name="aty"});
- // 页面加载完成后,再加载模块
- angular.element(document).ready(function() {
- angular.bootstrap(document.getElementById("div1"),["moudle1"]);
- angular.bootstrap(document.getElementById("div2"),["moudle2"]);
- });
- </script>
- <head>
- <body>
- <div id="div1" ng-controller="controller1">div1:{{name}}</div>
- <div id="div2" ng-controller="controller2">div2:{{name}}</div>
- </body>
- </html>
IE运行这个网页,发现变量能够被angular框架正确解析;F12发现控制台也没有报错误。到这里为止,我们知道了如何加载angular的模块,也明白了手动加载和自动加载的区别。接下来,我们就可以去继续学习angularjs框架的其他知识。
需要注意的是angular.bootstrap必须是在element参数所指向的dom树加载完毕后才能调用,所以通常我们会在$(document).ready()后执行。此处因为我们的script是放在body尾部,所以不存在问题。