Tutaj jest dyrektywa, w której ja próbuje wyłączyć łącza na podstawie wartości Model:zdarzenie Wyłączenie ngClick obsługi w dyrektywie niestandardowego
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');
}
});
}
}
};
});
Chcę być w stanie wyłączyć wszystkie działania łącza, niezależnie czy używają prostych hrefów czy działań ngClick. Hrefs działa dobrze z powodu wywołania preventDefault, ale nie mogę wymyślić, jak zagłębić się w NgClick i zapobiec jego uruchomieniu. Wiązanie, które robię w przypadku zdarzenia kliknięcia, nie działa, ponieważ wydaje się, że ngClick wiąże swój własny program obsługi, nad którym nie mam kontroli. Czy jest coś, co mogę zrobić?
jsFiddle: http://jsfiddle.net/KQQD2/2/
stopImmediatePropagation działa dobrze aż do v1.0.8, od v1.2.0 nie. testowane na pokrewnym skrzypcach. –