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

why ng-click is not working on ng-repeat elements?

我正在尝试将 ng-click 绑定到 ng-repeated 元素上并尝试 show/hide div。出于一个奇怪的原因,它对我不起作用。任何人都可以看看吗?在下面添加 fiddle link

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>

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

此外,您的 $scope.click 不应是原始类型对象,因为您的 ng-repeat 部分将保留其自己的点击变量副本,而外部 html.See this.

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

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

这是一个有效的 plunker

看这个例子: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>