2014-10-16 9 views
2

I이 지침의 템플릿은 다음과 같은 코드 : 이상한 행동

<div ng-click="showDetails=true" ng-init="showDetails=false"> 
    <div ng-show="showDetails"> 
     <div ng-click="showDetails=false">X</div> 
    </div> 
</div> 

내가 외부 DIV, 내부 DIV 쇼를 클릭,하지만 난을 클릭하면

' X ', 그것은 사라지지 않습니다. 코드를 다시 작성하고 'ng-click'대신 'ng-mouseover'를 사용하면 정상적으로 작동합니다 (예 : 'X'위에 마우스를 올려 놓으면 사라집니다).

<div ng-click="showDetails=true" ng-init="showDetails=false"> 
    <div ng-show="showDetails"> 
     <div ng-mouseover="showDetails=false">X</div> 
    </div> 
</div> 

누구나 'ng-click'문제가 무엇이 아닌지 실마리가 있습니다.

+0

컨트롤러를 제공해주세요! – Lrrr

+0

이 지시자에 대한 컨트롤러가 없습니다. 대신,이 특정 문제에 관한 기능이없는 컨트롤러가있는 외부 지시문 안에 여러 번 인스턴스화되었습니다. – Gal

답변

3

클릭 이벤트가 전파 중이므로 showDetails를 false로 설정 한 후 가장 바깥 쪽 div에 다시 설정합니다! 사용해보기 :

<div ng-click="showDetails=true" ng-init="showDetails=false"> 
    <div ng-show="showDetails"> 
     <div ng-click="showDetails=false;$event.stopPropagation()">X</div> 
    </div> 
</div> 
+1

해결되었습니다. 대단히 감사합니다. – Gal