angularJS 自定义指令

angularJS 自定义属性

类似于过滤器filter,内置了许多方法同时可以自定义方法。
通过angular.model来创建模块对象:

-angular.model:

  1. controller:控制器
  2. run:初始化
  3. filter:过滤器
  4. directive:创建自定义(myHello->my-hello)
    -restrict有四种定义的方式(注意大小写):指定指令类型并可叠加使用
    》E:元素,标签(重写HTML中的标签属性或者替换标签模板)
    》A:属性(主要是功能性如:ng-if)
    》C:class的方式,看做指令。但容易与class的样式混淆
    》M:注释(注意空格)
    —template:模板选项
    -templateUrl:外部模板引用
    -replace:替换(true:替换)
  5. scope
    -独立作用域true,互相独立不影响
    -隔离作用域{},不再与外面嵌套的标签再有任何继承的关系
    绑定策略:用来绑定不同的数据
    》@:绑定数据,绑定指令,绑定的普通字符串
    》=:绑定数据,变量名
    》&:函数传递

代码示例:

    <script>
    var m = angular.module('myApp',[]);//引入相应模块
    m.directive('hello',function(){//通过函数回调的形式
        return{
            restrict:'EAMC',//配置选项
            replace:true,
            template:'<div>hello angular </div>'
        };
    });
    </script>

    <hello></hello>
    <p hello></p>
    <p class="hello"></p>
    <!-- directive:hello  --><!--注意空格-->
    <div ng-controller="Aaa" >
    </div>

页面结果展示:
这里写图片描述

代码示例:

<script>
    var m = angular.module('myApp',[]);//引入相应模块
    m.directive('myTab',function(){//通过函数回调的形式
        return{
            restrict:'E',//配置选项
            replace:true,
            //scope:true,//独立
            scope:{
                myId:'@',
                myName:'=',
                myFn:'&'
            },//隔离作用域
            controller:['$scope',function($scope){
                $scope.name = 'miaov';
            }],
            template:'<div id="{{myId}}">\
            <input class="active" type="button" value="1" ng-click="myFn({num:456})">\
            <input type="button" value="2">\
            <input type="button" value="3">\
            <div style="display:block">{{name}}</div>\
            <div>22222222</div>\
            <div>33333333</div>\
            </div>'
        };
    });

    m.controller('Aaa',['$scope',function($scope){

        $scope.name = 'hello';
        $scope.show = function(n){
            alert(n);
        }
    }]);

    </script>

<body ng-controller="Aaa">
    <my-tab my-id="div1" my-name="name" my-fn="show(num)"></my-tab>
    <my-tab my-id="div2" my-name="name" my-fn="show(num)">></my-tab>

页面结果展示:
这里写图片描述

6.link:进行dom操作
》scope:作用域
》elemen:指的是父级的元素
》attr:当前标签上的属性
》reController

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值