如果点击ng-repeat中的任何按钮,我试图隐藏div。然而它似乎没有用,它让我想到如果从ng-repeat中控制ng-hide或ng-show是不行的?
<div data-ng-hide="showChooseHardware">
<table class="table">
<tbody>
<tr data-ng-repeat="hardware in hardwares">
<td>{{hardware.name}}</td>
<td>
<button type="button" class="btn" data-ng-click="showChooseHardware=!showChooseHardware"/>
</td>
</tr>
</tbody>
</table>
</div>
答案 0 :(得分:2)
这是因为ng-repeat为每个模板创建了一个新的范围,并且由于原型继承在JavaScript(和AngularJS)中的工作原理。
使用对象:
$scope.viewModel = { showChooseHardware: false };
HTML:
data-ng-hide="viewModel.showChooseHardware"
和
data-ng-click="viewModel.showChooseHardware=!viewModel.showChooseHardware"
可以找到关于这个问题的一个很好的解释here。
我建议在这种情况下使用ng-show
,因为变量名为showChooseHardware
。
答案 1 :(得分:1)
ngRepeat指令在每次迭代中为数组中的每个项创建新范围。它可能会产生问题,你有。