ホームページ  >  に質問  >  本文

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


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

$scope.myVar=false;
$scope.toggle=function(){
    this.myVar=!this.myVar;
}
为情所困为情所困2737日前574

全員に返信(2)返信します

  • 習慣沉默

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

    ng-repeat時に$indexでトラックを追加し、$indexをtoggle()に渡すと良いと思います。繰り返す必要がある長さと同じ長さの myVar 配列を宣言し、配列の値を true に設定し、ng-if="myVar[$index]" を使用して先頭に表示します。
    展開ボタンと縮小ボタンをクリックすると、toggle($index) は配列内の対応する位置の値を反転するだけです。

    返事
    0
  • 仅有的幸福

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

    まだ ng-repeat を使っていないので、ng-repeat に切り替えれば問題ありません。
    なお、トグルを書く必要はなく、ng-click するだけです。 ="myVar=!myVar"

    返事
    0
  • キャンセル返事