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相关内容感兴趣的读者可查看本站专题:《AngularJS指令操作技巧总结》、《AngularJS入门与进阶教程》及《AngularJS MVC架构总结》

希望本文所述对大家AngularJS程序设计有所帮助。

以上是 AngularJS实现自定义指令及指令配置项的方法 的全部内容, 来源链接: utcz.com/z/360702.html

回到顶部