AngularJS如何在同一个界面启动多个ng-app应用模块

AngularJS默认在一个html界面中只启动一个 ng-app 模块,而且是界面中第一次出现的那个使用 ng-app 声明的模块,该问题可以通过查看AngularJS源代码或者是文档验证。

解决方案:

直接上代码,如果有兴趣了解其中缘由,可以选择阅读后面的部分;

<!DOCTYPE html>
<html>
<head lang="zh_CN">
 <meta charset="UTF-8">
 <title>AngularJS Source Code Analysis</title>
 <script src="source/angular.min.js" type="text/javascript"></script>
 <script src="source/angular-route.min.js" type="text/javascript"></script>
</head>
<body>
 <div ng-app="myApp-0" ng-controller="nameCtrl">
  <input type="text" ng-model="age"/>{{ demo }}--{{ age }}
  <ul>
   <li ng-repeat="val in names" ng-bind="val"></li>
  </ul>
 </div>

 <!-- 并行启动多个ng-app -->
 <div id="test-0"  ng-controller="testCtrl_0">
  <p>{{content.message}}</p>
 </div>
 <div id="test-1" ng-controller="testCtrl_1">
  <p>{{content.message}}</p>
 </div>
</body>
<script>
 var myApp_0 = angular.module("myApp-0", []);
 myApp_0.controller('nameCtrl', function ($scope, $rootScope){
  $scope.names = ["shen", "amy", "sereno"];
  $scope.age = 24;
  $rootScope.demo = "demo";
 });

 var myApp_1 = angular.module("myApp-1", []);
 myApp_1.controller('nameCtrl-1', function ($scope, $rootScope){
  $scope.names = ["shen-1", "amy-1", "sereno-1"];
  $rootScope.age = 24;
 });


 // 并行启动多个 ng-app
 var myApp1mod = angular.module('test-0',[]);
 myApp1mod.controller('testCtrl_0',function($scope){
  var content= {};
  content.message = "Hello Test-0";
  $scope.content= content;
 });

 var myApp2mod = angular.module('test-1',[]);
 myApp2mod.controller('testCtrl_1',function($scope){
  var content= {};
  content.message = "Hello Test-1";
  $scope.content= content;
 });

 angular.element(document).ready(
   function (){
    angular.bootstrap(document.getElementById("test-0"), ["test-0"]);
    angular.bootstrap(document.getElementById("test-1"), ["test-1"]);
   }
 );

</script>
</html>

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值