angularjs 定义指令学习1

1、HTML中的定义方式与指令中可以不同,HTML中用XXXX-XXXX,在指令中用驼峰式,或者不用驼峰,形势一直。

2、可以在元素、属性、类名创建属性。

<lio></lio>
<div lio></div>
<p class="lio"></p>

<script>
    var a=angular.module('lio',[]);
    a.directive('lio',function(){
        return{
            restrict:'EAC',
            template:'<a href="#">click here</a>',
            replace:true
        }
    })
</script>

3、向指令中传数据

第一种:由所述控制器提供已经存在的作用域

把DOM中的值复制给指令的作用域,采用绑定机制。

<div my-lio my-name="http:\\" click-here="click me"></div>


<script>
    var a=angular.module('lio',[]);
    a.directive('myLio',function(){
        return{
            restrict:'EAC',
            template:'<a href="{{myName}}">{{clickHere}}</a>',
            replace:true,
            scope:{
                myName:'@',
                clickHere:'@'
            }
        }
    });
</script>

还可以绑定到指定的属性当中,如

<script>
    var a=angular.module('lio',[]);
    a.directive('myLio',function(){
        return{
            restrict:'EAC',
            template:'<a href="{{myName}}">{{clickHere}}</a>',
            replace:true,
            scope:{
                myName:'@',
                clickHere:'@myName'
            }
        }
    });
</script>

流程是:DOM复制到指令作作用域中(scope),指令作用域再对应template中的。

@绑定是一一对应。

第二种:数据绑定形式ng-model



模板中的数据初始化高于控制器中的:

<body ng-app="lio">
<div ng-controller="c">
    <input type="text" ng-model="v.name" ng-init="v.name='sa'"/>
    <span ng-bind="v.name"></span>
</div>
</body>
<script>
    var a=angular.module('lio',[]);
    a.controller('c',function($scope){
        var v={};
        v.name="Hello";
        $scope.v=v;
    })
</script>



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值