JavaScript

超轻量级php框架startmvc

AngularJS实现自定义指令及指令配置项的方法

更新时间:2020-06-16 00:42:01 作者:startmvc
本文实例讲述了AngularJS实现自定义指令及指令配置项的方法。分享给大家供大家参考,具体

本文实例讲述了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 自定义指令 指令配置项