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

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容