本文實例講述了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程序設計有所幫助。
新聞熱點
疑難解答