Hier ist eine Richtlinie, in der ich auf einem Modellwert einen Link basierte zu deaktivieren bin versucht:Deaktivieren ngClick Ereignis in einer benutzerdefinierten Richtlinie Handhabung
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');
}
});
}
}
};
});
Ich möchte in der Lage sein, alle Links Aktionen zu deaktivieren, und zwar unabhängig ob sie einfache hrefs oder ngClick-Aktionen verwenden. Hrefs funktionieren gut wegen des Aufrufs preventDefault, aber ich kann nicht herausfinden, wie man in ngClick eingräbt und verhindert, dass es ausgelöst wird. Die Bindung, die ich für das click -Ereignis mache, funktioniert nicht, da es so aussieht, als ob ngClick einen eigenen Handler bindet, über den ich keine Kontrolle habe. Kann ich irgendetwas tun?
jsFiddle: http://jsfiddle.net/KQQD2/2/
stopImmediatePropagation arbeitet an v1.0.8 fein auf, von v1.2.0 nicht der Fall ist. auf verwandter Geige getestet. –