angularjs的ng-repeat指令下的scope作用域

ng-repeat指令在迭代的时候,每次迭代都会创建一个新的scope,比如下面的代码:

<div ng-repeat="list in lists" ng-controller="listController">
        <some-directive/>
</div>
app.controller('listController',function($scope){
   $scope.lists = [1,2,3,4,5] 
})

div所在的scope就是listController控制器定义的$scope,而some-directive指令并没有控制器,虽然它没有控制器,但是它却是有自己的scope的,且scope下有一个属性list.还有一个属性$index,等等.

所以,ng-repeat指令创建了很多个同样的迭代,每个迭代都有自己的scope,每个scope下都有自己的list属性和$index属性等.这样,如果是在写ng-repeat指令下面的指令的时候(比如这里的some-directive),需要知道它是有自己的scope的.

这在我之前自己写的模拟ng-repeat指令的时候,代码里就可以看出:

angular学习笔记(三十)-指令(6)-transclude()方法(又称linker()方法)-模拟ng-repeat指令

 

转载于:https://www.cnblogs.com/liulangmao/p/4493553.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值