1

如果单击 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>
4

2 回答 2

2

这是因为 ng-repeat 为每个模板创建了一个新的范围,以及原型继承在 JavaScript(和 AngularJS)中的工作方式。

使用一个对象:

$scope.viewModel = { showChooseHardware: false };

HTML:

data-ng-hide="viewModel.showChooseHardware"

和:

data-ng-click="viewModel.showChooseHardware=!viewModel.showChooseHardware"

可以在这里找到关于这个问题的一个很好的解释。

我建议ng-show在这种情况下使用,因为变量被调用showChooseHardware

于 2015-02-01T17:08:47.383 回答
1

ngRepeat 指令在每次迭代中为数组中的每个项目创建新的范围。它可能会产生问题,你有。

于 2015-02-01T21:58:09.313 回答