>  Q&A  >  본문

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


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

$scope.myVar=false;
$scope.toggle=function(){
    this.myVar=!this.myVar;
}
为情所困为情所困2737일 전575

모든 응답(2)나는 대답할 것이다

  • 習慣沉默

    習慣沉默2017-05-15 17:06:52

    ng-repeat시 $index로 track을 추가하고, $index를toggle()에 전달하면 될 것 같습니다. 반복하려는 길이와 동일한 길이의 myVar 배열을 선언하고 배열의 값을 true로 설정하고 ng-if="myVar[$index]"를 사용하여 처음에 표시합니다.
    확장 및 축소 버튼을 클릭하면 토글($index)은 배열에서 해당 위치의 값만 반전시킵니다.

    회신하다
    0
  • 仅有的幸福

    仅有的幸福2017-05-15 17:06:52

    아직 ng-repeat를 안 써보셨기 때문에 ng-repeat로 바꾸시면 괜찮을 겁니다.
    그리고 토글도 쓸 필요 없이 ng-클릭만 하면 됩니다. ="myVar=!myVar"

    회신하다
    0
  • 취소회신하다