删除ng-repeat中最后一项的点击事件

时间:2014-08-05 20:39:00

标签: javascript angularjs angularjs-ng-repeat angularjs-ng-click

我有一个ng-repeat,如下所示:

<ol>
    <li class="pointer node-name" ng-click="myClick(node)" ng-repeat="node in myArray">{{node.name}}</li>
</ol>

这很棒,我从<ol>生成<li> myArray来生成ng-repeat

但是,我希望ng-click中的最后一项没有<ol> <li class="pointer node-name" ng-click="myClick(node)" ng-repeat="node in myArray">Step 1</li> <li class="pointer node-name" ng-click="myClick(node)" ng-repeat="node in myArray">Step 2</li> <li class="pointer node-name" ng-click="myClick(node)" ng-repeat="node in myArray">Step 3</li> <li class="pointer node-name" ng-click="myClick(node)" ng-repeat="node in myArray">Step 4</li> <li class="pointer node-name" ng-repeat="node in myArray">Step 5</li> </ol> 事件,或至少禁用它。 例如:

{{1}}

这甚至可能吗? 感谢。

3 个答案:

答案 0 :(得分:2)

您可以使用$last中的ngRepeat - 属性来检查它是否是最后一个元素。然后在你的点击处理程序中放置一个条件...

<li class="pointer node-name" ng-click="myClick(node, $last)" ng-repeat="node in myArray">Step 5</li>

答案 1 :(得分:0)

你可以使用$ index来查看循环索引到myArray,[0 .. n-1]。然后当$ index == myArray.length -1时,您可以禁用ng-click。

答案 2 :(得分:0)

禁用它应该很容易。

<ol>
    <li class="pointer node-name" ng-click="myClick(node)" ng-disabled="$last" ng-repeat="node in myArray">{{node.name}}</li>
</ol>

或检查索引是否等于数组的长度减去1(最后一个元素)

<ol>
    <li class="pointer node-name" ng-click="myClick(node)" ng-disabled="$index === myArray.length - 1" ng-repeat="node in myArray">{{node.name}}</li>
</ol>