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程序设计有所帮助。