首頁  >  問答  >  主體

angular.js - angularjs中相同的方法,如何做到觸發只對目前元素有效。


大圖里三個部分是從後台讀取資料然後綁定用ng-repeat出來的,要實現的功能是點擊各個部分最右邊的小角標,當前部分能展開或者收起,但是由於ng-repeat,連方法名稱和ng-show='myVar'都是一樣樣的,會導致點任何一個角標整片收縮或展開;
這段程式碼是要ng-repeat的底程式碼,還未做修改成,

$scope.myVar=false;
$scope.toggle=function(){
    this.myVar=!this.myVar;
}
为情所困为情所困2688 天前550

全部回覆(2)我來回復

  • 習慣沉默

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

    我覺得你在ng-repeat的時候,加上track by $index,並將$index傳入toggle()。宣告一個myVar數組,長度跟你需要repeat的長度相同,數組的值都設為true,使用ng-if="myVar[$index]"剛開始都顯示。
    在點擊展開收縮按鈕時toggle($index),將數組中對應位置的值取反就行了。

    回覆
    0
  • 仅有的幸福

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

    因為你還沒用ng-repeat,所以不行,換成ng-repeat就沒問題了
    另外,你不用寫一個toggle,直接ng-click="myVar=!myVar"就好了

    回覆
    0
  • 取消回覆