AngularJS学习笔记六 指令

1.AngularJS指令的出现形式为以下四种方式:

    E:作为HTML元素出现;

    A:作为HTML元素属性出现;

    C:作为CSS类样式出现;

    M:作为HTML注释内容出现。

2.一些常见的内置指令

ng-app    ng-model    ng-init    ng-controller    ng-disabled    ng-checked    ng-change    ng-class

ng-show    ng-hide    ng-bind    ng-if    ng-switch    ng-repeat    hg-href/src    ng-include    in-click

3.AngularJS模块对象提供了一个directive()方法来实现自定义指令。

    ①directive()方法接收两个参数:第一个参数为指令的名称,采用驼峰式命名法;第二个参数为指令定义方法,需要返回一个对象(指令定义对象DDO),用于描述指令的特征以及指令对应的处理逻辑。

    ②当自定义的指令采用驼峰式命名法后,在指令使用时可以使用“-”或者“:”将多个单词分隔开。例如:helloWorld指令:

<hello-World></hello-World>

    ③指令定义对象的各个属性:

    restrict:可以以什么形式出现:EACM;

    replace :是否使用template属性定义模板内容替换所在的HTML元素。Boolean值。

    template:指定AngularJS指令被替换成的HTML模板;

    link方法:link:function(scope,elem,attrs){}

                    scope:指令作用域;

                    elem:当前指令的HTML元素;

                    attrs:表示一个对象,包含指令的所有属性及属性值;

    link方法还可以用于需要获取或修改自定义指令的属性时;监视AngularJS作用域模型数据变化时;响应HTML模板中的事件时。

    compile方法:compile:function(tElem,tAttrs){

                                            return{    link:function(scope,iElem,iAttrs){}

                                                    }}

                        tElem:指令所在元素;

                        tAttrs:指令元素的所有属性列表;

    ④scope属性与指令作用域

        不设置指令定义对象的scope属性时:直接使用父作用域;

        scope:true:使用子作用域从父作用域原型继承;

        scope:{}:创建一个新的作用域对象和父作用域没有任何关系;

    ⑤孤立作用域与父作用域模型数据绑定

        使用@符号建立基于属性的绑定;

        使用=符号建立双向数据绑定;

        使用&符号调用父作用域中的方法;

    ⑥指令定义对象的transclude属性;

    ⑦controller方法与require属性

    指令定义对象的controller方法为指令控制器的构造方法,只要用于和其他指令进行通信,可以在构造方法中定义一些属性或者方法供其他指令调用;

    require:指令名。用于引用其他指令,这个指令名将会作为link方法的第四个参数。可以通过这个参数访问指令名的controller中的方法。

    前缀:?:当指令未找到,传递null;

               ^:当前指令控制器未找到,到父指令控制器中寻找;

                不指定:在当前指令寻找,未找到就跑出error.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值