2014-03-28 55 views
0

就我對Angular的理解而言,一次只能看到以下兩個元素中的一個,但由於某種原因,兩者都顯示。我的代碼中有一個錯誤,我看不到?Ng-show無法按預期工作? Angular

我使用ng-show錯誤嗎?

<div class="no_people" ng-show="!person.name"> 
    <p>no people</p> 
</div> 

<div ng-repeat="person in details.people"> 
    <div class="persons_table"> 
     <table> 
      <tbody> 
       <tr class="top_row"> 
        <td colspan="2">        
         <span class="person_name"> 
          {{ person.name }} 
         </span> 
         <span class="person_address" > 
          {{ person.address }} 
         </span> 
        </td> 
       </tr> 
      </tbody> 
     </table> 
    </div> 
</div> 

回答

1

正如我所看到的,你需要這樣的:

<div class="no_people" ng-hide="details.people.length > 0"> 
    <p>no people</p> 
</div> 
+0

非常好!這就是訣竅! 'ng-hide =「details.people.length'似乎沒有'> 0'也是如此。 – Daft

+0

這是因爲零以上的整數在表達式中評估爲」truthy「。 – Chev

4

我覺得這個事情應該工作:

<div class="no_people" ng-hide="details.people.length"> 
    <p>no people</p> 
</div> 

person變量只是ng-repeat內訪問。

而使用ng-hide而不是ng-show=!可能會更清潔一點。

+0

感謝您的意見約什,但仍然沒有喜悅。 – Daft

+0

現在完美運作。 – Daft