2014-11-14 35 views
0

我有下面的代碼片段:ng-hide是否隱藏了包含的DOM元素?

   <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(中)可見,且該分區不是也內容。在我的應用程序中,無論files中的元素數目是多少,都會顯示「沒有文件...」消息。我期望整個div被顯示/隱藏。我做錯了什麼或者這是如何ng-show工作?

在上例中,當文件數大於零時,會顯示AAA和CCC。

這是正確的行爲還是我做錯了什麼?

+0

整塊應該是看不見的。有些東西肯定是錯的 – pquest 2014-11-14 18:53:20

+0

它可能與您剛添加到表格中的那個段落塊有關。我不認爲你可以在那裏放置那個元素。 – pquest 2014-11-14 18:55:45

+2

您的HTML錯誤。 「表」中的「p」和「div」應包含在「td」或「th」中。 – Blazemonger 2014-11-14 18:55:56

回答

1

首先,我會說你有無效的HTML。 <div> s不能包含表格行。嘗試刪除包裝<div>並將ng-show放在<tr>上。

+0

是的,我確定DIV是問題所在。 – 2014-11-14 19:09:41

1

p不能出現在表格單元格外的table中。 div也不能。改爲在tr元素上使用ng-show

<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>