內的所有NG-點擊我有一個指令disable-ng-clicks
並在一定條件下,我想阻止所有NG-點擊是該指令的孩子。下面是一些例子標記:動態禁用元素
<div disable-ng-clicks> <!-- directive -->
<a ng-click="someAction()"></a>
<div ng-controller="myController">
<a ng-click="anotherAction()"></a>
<a ng-click="moreActions()"></a>
</div>
</div>
如果這些都是正常的超鏈接,我可以做這樣的事情在link
功能:
function(scope, iElement, iAttrs) {
var ngClicks = angular.element(iElement[0].querySelectorAll('[ng-click]'));
ngClicks.on('click', function(event) {
if(trigger) { // a dynamic variable that triggers disabling the clicks
event.preventDefault();
}
});
}
但是,這並不爲ng-click
指令工作。有沒有另外一種方法來完成這個?
那麼您點擊元素不是DIV,是錨。你應該把它放在每個錨點中,或者改變指令來禁止子元素的ng-click。你在做的方式它只適用於有指令的元素。 – Fals
我不確定我的理解。我可以將點擊處理程序附加到父項上,並在點擊某個子項時執行它。 – thetallweeks
是的,你可以這樣做,但你需要更改指令來尋找從有它的每一個元素chield。 – Fals