angular指令中scope的绑定策略

angular指令中scope的绑定策略
scope的作用是让父与子的scope可以进行传递数据,它的绑定一般分为三种情况:
@ :把当前属性作为字符串传递,还可以绑定来自外层scope上的值,在属性中插入{{}}即可;
=: 与父scope中的属性进行双向绑定;
&:传递一个来自父scope中的函数,稍后调用。
'@' 的使用
<person name="{{zhangsan}}"></person>
<person name="{{lisi}}"></person>

 js部分:
var app = angular.module('app',[]);
app.controller('apCtrl',['$scope',function($scope){
    $scope.zhangsan = '张三';
    $scope.lisi = '李四';
    $scope.greet = function(name,word){
        console.log(name +'----'+word)
    };
}])
app.directive('person',function(){
    return {
        replace: true,
        scope: {
            nameself:'@name' //此处的name是<person name="{{lisi}}"></person>的name,也就是{{lisi}}
        },
        restrict:'E',
        template:'<div>姓名:{{nameself}} <input type="text" ng-model="nameself"></div>'
    }
})
'=' 的使用
    {{zhangsan}}
{{lisi}}
<person name="zhangsan"></person>
<person name="lisi"></person>

js部分:
var app = angular.module('app',[]);

app.controller('apCtrl',['$scope',function($scope){
    $scope.zhangsan = '张三';
    $scope.lisi = '李四';
    $scope.greet = function(name,word){
        console.log(name +'----'+word)
    };
}])

app.directive('person',function(){
    return {
        replace: true,
        scope: {
            nameself:'=name' //此处的name父scope下的属性,实现双向绑定,子变父也变
        },
        restrict:'E',
        template:'<div>姓名:{{nameself}} <input type="text" ng-model="nameself"></div>'
    }
})
'&' 的使用
{{zhangsan}}
{{lisi}}
<person name="zhangsan" greet="greet(name,word)"></person>
<person name="lisi" greet="greet(name,word)"></person>
var app = angular.module('app',[]);

app.controller('apCtrl',['$scope',function($scope){
    $scope.zhangsan = '张三';
    $scope.lisi = '李四';
    $scope.greet = function(name,word){
        console.log(name +'----'+word)
    };
}])

app.directive('person',function(){
    return {
        replace: true,
        scope: {
            nameself:'=name',
            greetself:'&greet'
        },
        restrict:'E',
        template:'<div>姓名:{{nameself}} <input type="text" ng-model="word"><div ng-click="greetself({name: nameself,word:word})">click</div></div>'
    }
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值