本文实例讲述了AngularJS实现自定义指令及指令配置项的方法。分享给大家供大家参考,具体如下:
AngularJS自定义指令有两种写法:
//第一种 angular.module(\'MyApp\',[]) .directive(\'zl1\',zl1) .controller(\'con1\',[\'$scope\',func1]); function zl1(){ var directive={ restrict:\'AEC\', template:\'this is the it-first directive\', }; return directive; }; function func1($scope){ $scope.name=\"alice\"; } //第二种 angular.module(\'myApp\',[]).directive(\'zl1\',[ function(){ return { restrict:\'AE\', template:\'thirective\', link:function($scope,elm,attr,controller){ console.log(\"这是link\"); }, controller:function($scope,$element,$attrs){ console.log(\"这是con\"); } }; }]).controller(\'Con1\',[\'$scope\',function($scope){ $scope.name=\"aliceqqq\"; }]);
指令配置项
angular.module(\'myApp\', []).directive(\'first\', [ function(){ return { // scope: false, // 默认值,共享父级作用域 // controller: function($scope, $element, $attrs, $transclude) {}, restrict: \'AE\', // E = Element, A = Attribute, C = Class, M = Comment template: \'first name:{{name}}\', }; }]).directive(\'second\', [ function(){ return { scope: true, // 继承父级作用域并创建指令自己的作用域 // controller: function($scope, $element, $attrs, $transclude) {}, restrict: \'AE\', // E = Element, A = Attribute, C = Class, M = Comment //当修改这里的name时,second会在自己的作用域中新建一个name变量,与父级作用域中的 // name相对独立,所以再修改父级中的name对second中的name就不会有影响了 template: \'second name:{{name}}\', }; }]).directive(\'third\', [ function(){ return { scope: {}, // 创建指令自己的独立作用域,与父级毫无关系 // controller: function($scope, $element, $attrs, $transclude) {}, restrict: \'AE\', // E = Element, A = Attribute, C = Class, M = Comment template: \'third name:{{name}}\', }; }]) .controller(\'DirectiveController\', [\'$scope\', function($scope){ $scope.name=\"mike\"; }]);
更多关于AngularJS相关内容感兴趣的读者可查看本站专题:《AngularJS指令操作技巧总结》、《AngularJS入门与进阶教程》及《AngularJS MVC架构总结》
希望本文所述对大家AngularJS程序设计有所帮助。
© 版权声明
THE END
暂无评论内容