2017-10-10 95 views
0

我有一個directive及其子元素(內部指令模板)中有click事件。指令外部的元素(節標籤)有另一個click事件。所以,我需要使用stopPropagation以避免點擊向上傳遞到section標記。但是,點擊也不會傳遞給指令的子元素。我該如何解決這個問題。由於外部事件停止傳播,點擊不會觸發內部指令

主模板:

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

指令模板:

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

在這裏,當我打電話$event.stopPropagation()點擊不流通到指令的子元素太多。

幫我解決這個問題。 謝謝...

+1

無法重現你的問題。這是一個[code chunk](https://jsfiddle.net/ruw0comh/1/),與你的描述相關。 – Korte

+0

爲了以防萬一,如果您的指令作用域不是'false',應該在指令控制器中寫入'doDirectiveThing'函數 – Icycool

回答

0

試試看這個樣子......如果我理解正確的話,你不想傳播指令中的click事件到section。

主模板:

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

指令模板:

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