如何使用不同的控制器(AngularJs)创建嵌套分区?
如何在另一个div中创建div元素,以及在同一级别中动态创建其他div元素 [此图显示了我正在努力实现的目标] 问题是,当我想添加GrianContenu时,控制台会向我显示GrainContenu函数是未定义的,但它是与除法一起工作的 有人能帮我添加我的元素吗?就像图中所示 这是我的app.html、app.js和rightclickdirection.app app.js rightClickDirective.js app.html如何使用不同的控制器(AngularJs)创建嵌套分区?,angularjs,Angularjs,如何在另一个div中创建div元素,以及在同一级别中动态创建其他div元素 [此图显示了我正在努力实现的目标] 问题是,当我想添加GrianContenu时,控制台会向我显示GrainContenu函数是未定义的,但它是与除法一起工作的 有人能帮我添加我的元素吗?就像图中所示 这是我的app.html、app.js和rightclickdirection.app app.js rightClickDirective.js app.html 我已经创建了一个plunker来重新创建上面的代码片段
我已经创建了一个plunker来重新创建上面的代码片段。问题似乎是您当前的控制器层次结构是
-DivisionController
|-RightClickCtrl (has no idea about GrainContenu)
| |--GrainContenuCtrl (GrainContenu)
|- etc...
函数GrainContenu是在graincontonuctrl中定义的。“RightClickCtrl”不知道它的存在并不完全正确,因为您可以遍历$scope层次结构来查找-我认为这并不理想
只需简单地将“GrainConductRL”移动到“RightClickCtrl”之上,这样RightClickCtrl就不会从GrainConductRL继承任何原型,从而允许它访问GrainContenu函数
-DivisionController
|--GrainContenuCtrl (GrainContenu)
| |-RightClickCtrl (prototypically inherits from GrainContenuCtrl )
|- etc...
关于AngularJS中原型继承的更多信息,请参考答案。代码太多。.请重构它并只添加相关代码。.很难阅读。你需要无限嵌套吗?是@Dmitri Zaitsev,无限整洁
<html>
<head>
<link rel="stylesheet" href="css/bootstrap/bootstrap.min.css">
<link rel="stylesheet" href="css/bootstrap/bootstrap-theme.min.css">
</head>
<body ng-app="Webapp" ng-controller="DivisionCtrl">
<h1>Module Opale</h1>
Titre<input type="text" placeholder="Titre"><br />
Metadonnées<input type="text" placeholder="Titre"><br />
Objectif du module<input type="text" placeholder="Objectif">
<div ng-controller="RightClickCtrl" context="context1">
<div class="form-group" data-ng-repeat="division in divisions" ng-controller="GrainContenuCtrl">
<h2>Division</h2>
Titre<input type="text" placeholder="Titre">
<br />Titre court
<input type="text" placeholder="Titre"><br />
<div class="form-group" data-ng-repeat="grainContenu in grainContenus">
<h3>Grain de Contenu</h3>
Titre<input type="text" placeholder="Titre"><br />
Titre court<input type="text" placeholder="Titre"><br />
<h4>Information</h4>
Titre<input type="text" placeholder="Titre"><br />
<textarea rows="4" cols="50"></textarea><br />
</div>
<hr />
</div>
<ul id="context1" class="dropdown-menu">
<li><a ng-click="GrainContenu()">Grain de Contenu</a></li>
<li><a ng-click="Division()">Division</a></li>
<li><a ng-click="QCU()">Exercice:QCU</a></li>
<li><a ng-click="QCM()">Exercice:QCM</a></li>
</ul>
</div>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular-sanitize.min.js"></script>
<script type="text/javascript" src="js/app.js"></script>
<script type="text/javascript" src="js/rightClickDirective.js"></script>
<script type="text/javascript" src="js/plugins/jquery/jquery.min.js"></script>
<script type="text/javascript" src="js/plugins/jquery/jquery-ui.min.js"></script>
<script type="text/javascript" src="js/plugins/bootstrap/bootstrap.min.js"></script>
</body>
</html>
-DivisionController
|-RightClickCtrl (has no idea about GrainContenu)
| |--GrainContenuCtrl (GrainContenu)
|- etc...
-DivisionController
|--GrainContenuCtrl (GrainContenu)
| |-RightClickCtrl (prototypically inherits from GrainContenuCtrl )
|- etc...