Ecco evento è una direttiva in cui sto cercando di disabilitare un collegamento sulla base di un valore del modello:Disattivazione ngClick manipolazione in una direttiva personalizzato
app.directive('disableable', function($parse){
return {
restrict: 'C',
require: '?ngClick',
link: function (scope, elem, attrs, ngClick) {
if (attrs.disable){
var disable = $parse(attrs.disable);
elem.bind('click', function (e) {
if (disable(scope)){
e.preventDefault();
return false;
}
return true;
});
scope.$watch(disable, function (val) {
if (val){
elem.addClass('disabled');
elem.css('cursor', 'default');
}
else {
elem.removeClass('disabled');
elem.css('cursor', 'pointer');
}
});
}
}
};
});
voglio essere in grado di disabilitare tutte le azioni di collegamento, a prescindere se usano solo hrefs o azioni ngClick. Gli href funzionano bene a causa della chiamata preventDefault, ma non riesco a capire come scavare nel ngClick e impedirgli di sparare. Il bind che sto facendo sull'evento click non funziona perché sembra che ngClick stia legando il proprio gestore che non ho controllo. C'è qualcosa che posso fare?
jsFiddle: http://jsfiddle.net/KQQD2/2/
stopImmediatePropagation funziona bene fino a v1.0.8, da v1.2.0 non lo fa. testato su un violino correlato. –