2014-03-28 2 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

0보다 큰 정수는 표현식에서 "truthy"로 평가되기 때문입니다. – Chev

4

나는이 방법으로 작동해야한다고 생각 :

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

person 변수가 ng-repeat 내부에서만 액세스 할 수 있습니다.

ng-show=! 대신 ng-hide을 사용하면 조금 더 깨끗합니다. 내가 볼 수 있듯이

+0

조언 라요스 주셔서 감사합니다,하지만 기쁨을. – Daft

+0

이제 완벽하게 작동합니다. – Daft

관련 문제