为什么ng-click不能用于ng-repeat元素?

时间:2015-11-16 05:59:47

标签: angularjs angularjs-ng-click

我正在尝试绑定ng-click on ng-repeated元素并尝试显示/隐藏div。出于一个奇怪的原因,它不适合我。任何人都可以看一下吗?添加下面的小提琴链接

http://jsfiddle.net/uLujthsp/8/

<div data-ng-app="" ng-init="names=['Jani','Hege','Kai']">
  <p>Looping with ng-repeat:</p>
  <ul>
    <li ng-repeat="x in names" ng-click="click!=click">
      {{ x }}
    </li>
  </ul>

  <div id="hiddenDiv" ng-class="{show:click}">Showing</div>  
</div>

2 个答案:

答案 0 :(得分:2)

您应该尝试ng-click="click=!click"而不是ng-click="click!=click"

此外,您的$scope.click不应该是原始类型对象,因为您的ng-repeat部分会维护自己的点击变量副本,而外部html无法使用。请参阅this。< / p>

您必须使用ng-init指令初始化点击ng-init="items=['item 1','item 2'];obj={click:false}"

然后使用ng-click="obj.click=!obj.click"ng-class="{show:obj.click}"

这是一个有效的plunker

答案 1 :(得分:0)

请参阅此示例:http://jsfiddle.net/uLujthsp/18/

<div data-ng-app="" ng-init="names=['Jani','Hege','Kai']">
  <p>Looping with ng-repeat:</p>
  <ul ng-click="click =! click">
    <li ng-repeat="x in names" >
      {{ x }}
    </li>
  </ul>
{{click}}
  <div  ng-show="click">Showing</div>  
</div>