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

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

$scope.myVar=false;
$scope.toggle=function(){
    this.myVar=!this.myVar;
}
阅读 3k
2 个回答

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

新手上路,请多包涵

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进