JavaScript

超轻量级php框架startmvc

AngularJS自定义指令之复制指令实现方法

更新时间:2020-05-12 16:42:01 作者:startmvc
本文实例讲述了AngularJS自定义指令之复制指令实现方法。分享给大家供大家参考,具体如下

本文实例讲述了AngularJS自定义指令之复制指令实现方法。分享给大家供大家参考,具体如下:


<!DOCTYPE html>
<html>
 <head>
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <link rel="stylesheet" href="bootstrap.min.css" rel="external nofollow" >
 <script src="jquery.min.js"></script>
 <script src="angular.js"></script>
 <script src="bootstrap.min.js"></script>
 <script type="text/javascript">
 var app = angular.module('myapp', []);
 app.directive('duplicate', function($rootScope){
 return {
 transclude: 'element',
 replace: true,
 priority: 2,
 link: function(scope, elem, attrs, ctrl, transclude) {
 var times = parseInt(attrs.duplicate);
 var previous = elem;
 var childScope;
 for(var i = 0; i < times; i++) {
 childScope = scope.$new();//新建scope的子scope
 childScope.number = i;
 transclude(childScope, function(clone){//transclude将每个childScope与clone关联, 一一对应(一对对)
 // console.log(childScope.$id);
 // console.log(clone.scope().$id)
 previous.after(clone);//在previous与clone拼接再赋值给clone
 previous = clone;
 });
 }
 console.log(scope.childHead.number);//可以看到5个全是scope的子scopeconsole.log(scope.childTail.number);
 console.log(scope == $rootScope)//可以看到此时指令scope就是$rootScope 因为scope:false
 },
 }
 });
 </script>
 </head>
 <body ng-app="myapp">
 <input type='text' ng-model='number' duplicate="5" />
 <br/>
 <!--与上面绑定 -->
 <input type="text" ng-model="childHead.number"/><br/><inputtype="text"ng−model="childTail.number" />
 </body>
</html>

AngularJS 自定义指令 复制指令