本文实例讲述了 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 相关内容感兴趣的读者可查看本站专题:《AngularJS 指令操作技巧总结》、《AngularJS 入门与进阶教程》及《AngularJS MVC 架构总结》
希望本文所述对大家 AngularJS 程序设计有所帮助。
来源: http://www.jb51.net/article/113996.htm