如何设置仅在ng中按$ $元素重复?

时间:2013-12-30 16:52:05

标签: angularjs

如何将ng-click分配给ng-repeat中的$first element?在下面的代码doSomething()只应在单击第一个输入时调用。其余输入不应分配ng-click处理程序。我找到了如何使用ng-class或ng-show $first但不使用ng-click的示例。

<div ng-repeat="item in items">
  <input type="checkbox" ng-click="doSomething()"/>{{item.name}}
</div>

3 个答案:

答案 0 :(得分:9)

试试这个:

<input type="checkbox" ng-click="$first && doSomething()"/>{{item.name}}

工作考试:http://jsfiddle.net/wLrYc/

答案 1 :(得分:3)

你也可以使用ngSwitch来避免创建你在评论中提到的所有处理程序:

<div ng-repeat="item in items" ng-switch on='$first'>
    <input type="checkbox" ng-switch-when='true' ng-click="doSomething()"/>
    <input type="checkbox" ng-switch-when='false'/>
    {{item.name}}
</div>

答案 2 :(得分:0)

半丑的解决方案:将$ first作为参数发送到doSomething()

<div ng-repeat="item in items">
    <input type="checkbox" ng-click="doSomething($first)"/>{{item.name}}
</div>

然后让$ scope.doSomething(actualDoSomething)只有在实际上DoDoMomething为真时才会这样做。