首页 > angularjs中相同的方法,如何做到触发只对当前元素有效。

angularjs中相同的方法,如何做到触发只对当前元素有效。


大图里三个部分是从后台读取数据然后绑定用ng-repeat出来的,要实现的功能是点击各个部分最右边的小角标,当前部分能展开或者收起,但是由于ng-repeat,连方法名和ng-show='myVar'都是一样样的,会导致点任何一个角标整片收缩或展开;
这段代码是要ng-repeat的底代码,还未做修改成,

$scope.myVar=false;
$scope.toggle=function(){
    this.myVar=!this.myVar;
}

因为你还没有用ng-repeat,所以不行,换成ng-repeat就没问题了
另外,你不用写一个toggle,直接ng-click="myVar=!myVar"就好了


我觉得你在ng-repeat的时候,加上track by $index,并将$index传入toggle()中。声明一个myVar数组,长度跟你需要repeat的长度相同,数组的值都设为true,使用ng-if="myVar[$index]"刚开始都显示。
在点击展开收缩按钮时toggle($index),将数组中对应位置的值取反就行了。

【热门文章】
【热门文章】