ng-app是angular的一个指令,代表一个angular应用(也叫模块)。使用ng-app或ng-app=""来标记一个DOM结点,让框架会自动加载。也就是说,ng-app是可以带属性值的。如果想要实现自动加载,那么就不能让ng-app带有属性值。而带属性的ng-app自己主动载入我们自己定义的模块作为根模块。
<html>
<body ng-app>
<div>div1:{{1+3*2}}</div>
<script src="angular.js"></script>
</body>
</html>
1、不含ng-app,无法自动加载。
<html>
<body>
<div>div1:{{1+3*2}}</div>
<script src="angular.js"></script>
</body>
</html>
2、含有2个ng-app,那么只会自动加载第一个。
<html>
<body>
<div ng-app>div1:{{1+3*2}}</div>
<div ng-app>div2:{{1+3*2}}</div>
<script src="angular.js"></script>
</body>
</html>
3、如果根节点有ng-app含有2个ng-app,那么两个都会加载。
<html>
<body ng-app=“”>
<div ng-app>div1:{{1+3*2}}</div>
<div ng-app>div2:{{1+3*2}}</div>
<script src="angular.js"></script>
</body>
</html>
4、ng-app带有属性,不能自动加载
<html>
<body>
<div ng-app="app1">div1:{{1+3*2}}</div>
<script src="angular.js"></script>
</body>
</html>
5、ng-app带有属性,可自动加载自己定义的模块
<!DOCTYPE html>
<html>
<head>
<head>
<body>
<div id="moudle1" ng-app="rootMoudle" ng-controller="rootControl">div1:{{name}}</div>
</body>
<script src="angular.js"></script>
<script>
var rootMoudle = angular.module('rootMoudle', []);
rootMoudle.controller("rootControl",function($scope){$scope.name="aty"});
</script>
</html>
6、angular.bootstrap()可以手动加载模块
<html>
<head>
<head>
<body>
<div id="moudle1" ng-app="rootMoudle" ng-controller="rootControl">div1:{{name}}</div>
</body>
<script src="angular-1.2.2/angular.js"></script>
<script>
//页面载入完毕后,载入rootMoudle
angular.element(document).ready(function(){
angular.bootstrap(document.getElementById("moudle1"), ['rootMoudle']);
});
</script>
</html>