AngularJS实现自定义指令及指令配置项的方法
本文实例讲述了AngularJS实现自定义指令及指令配置项的方法。分享给大家供大家参考,具体如下:
AngularJS自定义指令有两种写法:
//第一种 angular.module('MyApp',[]) .directive('zl1',zl1) .controller('con1',['$scope',func1]); functionzl1(){ vardirective={ restrict:'AEC', template:'thisistheit-firstdirective', }; returndirective; }; functionfunc1($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:'firstname:{{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:'secondname:{{name}}', }; }]).directive('third',[function(){ return{ scope:{},//创建指令自己的独立作用域,与父级毫无关系 //controller:function($scope,$element,$attrs,$transclude){}, restrict:'AE',//E=Element,A=Attribute,C=Class,M=Comment template:'thirdname:{{name}}', }; }]) .controller('DirectiveController',['$scope',function($scope){ $scope.name="mike"; }]);
更多关于AngularJS相关内容感兴趣的读者可查看本站专题:《AngularJS指令操作技巧总结》、《AngularJS入门与进阶教程》及《AngularJSMVC架构总结》
希望本文所述对大家AngularJS程序设计有所帮助。