ng-hide是否隐藏了包含的DOM元素?

时间:2014-11-14 18:50:33

标签: html angularjs

我有以下代码段:

                <p>AAA</p>
                <div ng-show="files.length == 0">
                <p>BBB</p>
                    <tr class="no-files">
                <p>CCC</p>
                        <td colspan="2">
                            <p class="no-files">There are no files to load.</p>
                        </td>
                    </tr>
                </div>

ng-show似乎只将自己的div标记为(in)可见,而不是该div的内容。在我的应用程序中,无论files中的元素数量如何,都会显示“没有文件...”消息。我希望显示/隐藏整个div。我做错了什么,或者ng-show是如何工作的?

在上面的示例中,当文件数大于零时,将显示AAA和CCC。

这是正确的行为还是我做错了什么?

2 个答案:

答案 0 :(得分:1)

p无法出现在表格单元格之外的table中。 div也不能。ng-show。请改用tr元素上的<tr class="no-files" ng-show="files.length == 0"> <td colspan="2"> <p class="no-files">There are no files to load.</p> </td> </tr>

{{1}}

答案 1 :(得分:1)

首先,我要说你的HTML无效。 <div> s不能包含表行。尝试删除包装器<div>并将ng-show放在<tr>