2017-10-10 10 views
0

directive이고 하위 요소 (지시문 템플릿 내부)에 click 이벤트가 있습니다. 지시문 (섹션 태그) 외부의 요소에는 또 click 이벤트가 있습니다. 따라서 클릭이 section 태그로 위쪽으로 전달되는 것을 피하려면 stopPropagation을 사용해야합니다. 그러나 클릭은 지시문의 하위 요소에도 전달되지 않습니다. 이 문제를 어떻게 해결할 수 있습니까?외부에서 이벤트가 발생하여 클릭이 트리거되지 않습니다.

주요 템플릿 :

<section ng-click="doSomething()"> 
    <div ng-click="$event.stopPropagation()"> //Here where the problem comes.. 
     <myDirective></myDirective> 
    </div> 
</section> 

지침 템플릿 : 내가 클릭이 너무 지침의 자식 요소에 전달되지 않는 $event.stopPropagation() 전화 여기

<div> 
    <div ng-click="doDirectiveThing()"></div> 
</div> 

.

이 문제를 해결할 수 있도록 도와주세요. 감사합니다 ...

+1

이 문제를 재현 할 수 없습니다. 설명과 관련하여 [code chunk] (https://jsfiddle.net/ruw0comh/1/)가 있습니다. – Korte

+0

지시어 범위가'false'가 아니라면'doDirectiveThing' 함수는 지시어 컨트롤러 안에 쓰여 져야합니다 – Icycool

답변

0

다음과 같이하십시오. 올바른지 이해하면 클릭 이벤트를 지침에서 섹션으로 전파하고 싶지 않습니다.

주요 템플릿 :

<section ng-click="doSomething()"> 
     <myDirective></myDirective> 
</section> 

지침 템플릿 :

<div> 
    <div ng-click="doDirectiveThing();$event.stopPropagation()"></div> 
</div>