自定义指令的参数

指令无外乎增强了 HTML,提供额外的功能 
以上的指令基本上已经可以满足我们的绝大多数需要了 
少数情况下我们有一些特殊的需要,可以通过自定义指令的方式实现。

从更高的层次上说,指令是DOM元素上的一些标记(例如: 属性,元素名称,注释和一些CSS的类)用于转换DOM元素的内部或者对DOM元素进行一些行为上的绑定。

    • 注意事项

      • 自定义指令和自定义控制器都必须要挂载在模块之下。因为自定义指令的directive是angular.module下的一个方法,点击这里查看
      • 具体用法为 angular.module(‘moduleName‘,[]).directive(name, directiveFactory);
      • angular.module 可以使用链式编程的形式,返回模块本身,可定义多个指令。
      • 定义指令的时候用驼峰命名法如:myDirective , 使用的时候用匈牙利命名法:my-directive
      • 自定义指令可以把一段重复使用的方法封装起来,类似封装一些组件来使用。
    • 对return中的一些常用选项的说明 ,官方文档的说明(访问不了,可能是因为文档上的路由设置,需要一层层的点进去查看),就不再举例了。
      • template : 用于将一段自定义的代码绑定到含有对应指令的html中。
      • templateUrl : 用于将’其他html’文件渲染进入含有对应指令的html中。当然这里的’其他html’里面可以有我们的指令或者表达式,其实就是代码段,和在当前页面一样使用,只是抽离出去了,方便管理。这里会用异步请求的方式来得到这个文件。注意:此处会发送一个xhr请求。
      • transclude : 值为布尔型,需要在template中添加一个内置指令ng-transclude,将含有这个自定义指令中的内容,放入到template中去渲染,然后放到含有自定义指令的DOM元素内。
      • replace : 值为布尔型, 开启后就会把含有自定义指令的DOM元素,替换成template中的内容。
      • scope : 规范指令的作用域的问题,如果没写,ng中默认的是放在根作用域中的,一般每个控制器就会有一个作用域,每个指令也会存在一个作用域,并且作用域存在继承关系,我们为了规范作用域,可以在自定义指令中有一个scope选项,在scope内部定义一些属性。下面是示例代码。 
        html结构:
        <div ng-app=‘myApp‘><haha title=‘hello‘ data=‘world‘></haha></div>

        javascript结构:

        angular.module(‘myApp‘,[])
          .directive(‘haha‘,[function(){return {
              scope:{
                title:‘@‘,
                data:‘@‘
              },
              template:‘{{title}} {{data}}‘
            }
          }])

        代码输出 hello world 其中 @ 表示 scope中的属性值,引用了使用自定义指令的DOM元素的属性值。

      • restrict : 用于指定自定义指令的类型。 A,表示只匹配属性。E,表示只匹配元素。C,表示只匹配类名。AEC,表示三种都可以作为匹配项。而M,匹配注释指令,已经被高版本抛弃使用了,我们推荐使用A和E。
      • link函数 : angular 中允许在这个内部进行一些dom操作,格式是这样的: link:function(scope, element, attrs){} scope代表的是当前指令的作用域,element代表当前元素,attrs代表元素的属性,在里面用的是jqlite里面的api。备注,如果只去操作dom,那么我们只需要return一个函数就行了,不用 link选项了。
时间: 2025-01-02 14:16:35

自定义指令的参数的相关文章

vue学习(二):自定义过滤器和自定义指令

#自定义指令 自定义指令的参数有: el: 指令所绑定的元素,可以用来直接操作 DOM . binding: 一个对象,包含以下属性: name: 指令名,不包括 v- 前缀. value: 指令的绑定值, 例如: v-my-directive="1 + 1", value 的值是 2. oldValue: 指令绑定的前一个值,仅在 update 和 componentUpdated 钩子中可用.无论值是否改变都可用. expression: 绑定值的字符串形式. 例如 v-my-di

AngularJS 自定义指令详解

版权声明:本文为博主原创文章,未经博主允许不得转载. //blog.csdn.net/qq_27626333/article/details/52261409 除了 AngularJS 内置的63个指令外,我们还可以创建自定义指令.你可以使用 .directive 函数来添加自定义的指令.要调用自定义指令,HTML 元素上需要添加自定义指令名.使用驼峰法来命名一个指令, runoobDirective, 但在使用它时需要以 - 分割, runoob-directive,自定义指令的参数如下: [

第二节:指令的使用(6)——自定义指令

1.指令定义的钩子函数:(这些钩子函数都是可选的) bind: 只调用一次,指令第一次绑定到元素时调用,用这个钩子函数可以定义一个在绑定时执行一次的初始化动作. inserted: 被绑定元素插入父节点时调用(父节点存在即可调用,不必存在于 document 中). update: 被绑定元素所在的模板更新时调用,而不论绑定值是否变化.通过比较更新前后的绑定值,可以忽略不必要的模板更新. componentUpdated: 被绑定元素所在模板完成一次更新周期时调用,即模版更新完成的调用. unb

Angularjs[25] - 自定义指令(1)(restrict, template, replace)

自定义指令: module.directive(name,directiveFactory) @see $compileProvider.directive() ??  不要使用 ng 为指令,若指令名为 xxx-yyy,在设置指令名时应为 xxxYyy 即驼峰命名法. restrict: 可以任意组合四种风格,如果忽略 restrict,默认为A. 字母 风格 示例 E 元素 <my-dir></my-dir> C 样式类 <span class="my-dir:

带你走近AngularJS - 创建自定义指令

为什么使用AngularJS 指令? 使用过 AngularJS 的朋友应该最感兴趣的是它的指令.现今市场上的前端框架也只有AngularJS 拥有自定义指令的功能,并且AngularJS 是目前唯一提供Web应用可复用能力的框架. 目前有很多JavaScript 产品提供插件给Web开发人员.例如, Bootstrap 就是当前比较流行的提供样式和JavaScript插件的前端开发工具包.但是开发人员在使用Booostrap中的插件时, 必须切换到JavaScript 模式来写 jQuery

Vue 自定义指令练习

Vue.directive(id,definition)注册一个全局自定义指令,接收两个参数,指令ID以及定义对象 取值: <div v-demo="{ color: 'white', text: 'hello!' }"></div> Vue.directive("demo", function (el, binding) { alert(binding.value.color); alert(binding.value.text); })

angular的自定义指令---详解

1.angualr指令 在angualr自己里面有许多丰富的指令,但都是平时所常见的,但对于自己所需要的可能有所欠缺,所以自己可能会摒弃原声指令,自己封装更为健壮灵活的指令: 其实angular里面的指令也是基于下面所用到的步骤来创建的,只不过他都添加到了全局中,所以可以直接使用: 2.创建自定义指令 首先创建模块app,再使用app的服务directive方法, 创建指令内容第一个参数自定义的名字,第二个参数是自定义参数属性对象,该对象包括的属性基本在代码注释解释清楚: // a.创建模块 v

自定义指令

directives.js 存放 自定义标签 strict require scope link 接收两个参数 第一个参数表示自定义指令的名称(在页面中使用-分隔单词,在自定义指令中通过驼峰式命名) 第二个参数表示自定义指令处理函数 返回值是一个对象, 用来描述我们自定义指令的 描述自定义指令的对象有一些属性 restrict表示自定义指令的类型,四大类ECMA,这四类书写顺序是任意的,可以组合使用 E:自定义元素类型的自定义指令 语法 <my-title></my-title>

angularJs工作日记-自定义指令Directive01

新项目组使用完善的angularMVVM设计思路架构,很庆幸能够来到这个项目组,在这里的每一天都能够学习到新的知识,为了防止以后忘记,记录一下个人的理解 首先接触最多的是directive,directive目前用到了以下几个属性, restrict,scope,link,templateUrl 首先是restrict:这个无需多说,用来定义自定义指令的使用形式,包括A属性,E标签,C是class,M是备注,最常用的就是EA,尤其是E可以在标签中使用自定义属性传参给父controller,或者定