在ng-repeat中点击ng-click指向兄弟div而不是ng-repeat中的所有div

时间:2014-02-27 02:29:55

标签: javascript angularjs

好的,首先是可怕的头衔,希望我能在这里解释得更好。 所以我有一个ng-repeat,在这个重复内部有一个div,它包含一个按钮和另一个div。我希望按钮只能影响旁边的div。目前,该按钮会影响循环内的所有div。

HTML:

<div ng-repeat="item in menu" ng-show="!$first">
    <div class="col-md-2" back-img="item.img">
        <div ng-controller="buttonController">
            <button ng-click="fadeIt('redbox')">click to fade</button>
            <div class="redbox">fade me</div>
        </div>
    </div>
</div>

我查看了ng-class,但是我无法弄清楚如何让'redbox'类改变它的值来合并ng-repeat迭代(所以'redbox1''redbox2'等)。我也试过给redbox div item.title希望它会以这种方式迭代。没运气。基本上我希望按钮只改变它的兄弟div。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

您可以使用$index获取ng-repeat中元素的索引,以便将html更改为:

<div ng-repeat="item in menu" ng-show="!$first">
    <div class="col-md-2" back-img="item.img">
        <div ng-controller="buttonController">
            <button ng-click="fadeIt('redbox' + $index)">click to fade</button>
            <div class="redbox{{$index}}">fade me</div>
        </div>
    </div>
</div>