美文网首页前端开发
angularjs 之 directive

angularjs 之 directive

作者: weberZhou | 来源:发表于2016-07-28 00:44 被阅读0次

    这片文章为directive的基本的用法。

    1.directive的定义

    angular.module("app",[]).directive("directiveName",function(){

    return{

    //通过设置项来定义

    };

    })

    2.directive的声明方式

    E:元素

    A:属性

    C:样式

    D:注释

    目前我自己经历过的项目中没见过过第四种写法,前两种声明方式比较常见。

    3.directive 的template和templateUrl参数

    angular.module("app",[]).directive("hello",function(){                

        return{                

             restrict:'EA',                

             template:"

                hello world

             "                

        };            

    })

    template内容可以用templateUrl替换,建议使用后者。

    4.replace参数

    设为true后,指令所在位置都会被template或者templateUrl替换。

    5.transclude参数

    var appModule = angular.module('app', []);    

    appModule.directive('hello', function() {    

        return {        

            restrict: 'E',        

            template: '在前面的',        

            transclude: true    

        };

    });

    被指令包裹的内容会在template下面显示。

    <hello>

        <br/>

         后面

    </hello>

    界面会显示:

    在前面的

    后面

    5.scope

    可选参数,(布尔值或者对象)默认值为false,可能取值:

    (1)默认值false。

    表示继承父作用域;

    (2)true

    表示继承父作用域,并创建自己的作用域(子作用域);父亲改了子也该,子改了父亲不改。

    (3){}

    表示创建一个全新的隔离作用域;各自有各自作用域。

    当设置为{}时,两个作用域分开了,如何在两个directive上传参数呢?

    scope: {

        color: '@'

    }

    单向传参。

    scope:{

        color:'='

    }

    双向传参

    scope:{

        saysomething:'&',

    },

    函数的传递

    6.compile和link

    compile阶段进行标签解析和变换,link阶段进行数据绑定等操作。可在link上进行事件绑定。

    相关文章

      网友评论

        本文标题:angularjs 之 directive

        本文链接:https://www.haomeiwen.com/subject/lplmjttx.html