为什么第二个模块不能在angularjs中工作?

时间:2015-07-03 14:24:32

标签: angularjs

我在一个页面中使用两个模块,而第二个模块不起作用。如果我删除了第一个模块,那么第二个模块正常工作。我不知道为什么会这样,因为我们可以在一个页面中使用两个或多个模块。

<html>
<head>
   <title>Angular JS</title>

<script src="angular.min.js"></script>
</head>
<body>


<p>------------ New Controller ------------</p>

<div ng-app="newApp" ng-controller="validateform" >
{{name}}
    <form name="newForm">
        Enter Name: <input type="text" id="firstName" name="firstName"
        ng-model="firstName" ng-maxlength="20"> </br>
        <button ng-click="show()" >Submit</button>
    </form>
</div>
<script>
//Creating AngularJS controller here
var newApp = angular.module('newApp',[]);
newApp.controller('validateform',function($scope){
   $scope.name="newApp";
   $scope.show = function() {
    if($scope.firstName == undefined || $scope.firstName == '')
        alert('Name is Required');
    else
        alert('Hi - ' + $scope.firstName);
    };
   }
);
</script>

   <h2>AngularJS Sample Application</h2>
   <div ng-app="mainApp" ng-controller="myController">
   {{name}}
   </div>
<script>
   var mainApp = angular.module("mainApp", []);
   mainApp.controller('myController',function($scope){
      $scope.name="rishi";
   });
</script>
</body>
</html>

2 个答案:

答案 0 :(得分:0)

我没有足够的声誉对您的帖子发表评论,因此将其作为答案发布。正如迈克建议的那样,每页只能有一个模块充当ng-app。 ng-app基本上是你的角应用程序的入口点,应该在app.js中使用...如果你想要多个ng-app,那么你必须使用角度引导程序。浏览以下链接

AngularJS Multiple ng-app within a page

希望这会有所帮助......

答案 1 :(得分:0)

每页只能有一个ng-app。如果你想要另一个模块,那么你可以将它注入第一个模块:

var newApp = angular.module('newApp',['mainApp']);

这将使您可以访问该模块的控制器等...

在页面上,您可以将该控制器定义为特定

的控制器
<div ng-controller="myController">
...
</div>

问题是,为什么不在第一个模块中包含第二个模块的控制器并将它们全部放在一起?