このフィドルでは、トップ リンクの ngClick が機能するのに、カスタム ディレクティブを追加したリンクの ngClick が完全に機能しないのはなぜですか?
<a class="regular" ng-click="clickTheLink()">A regular ng-click link</a>
<a class="disableable" disable="disableTheLink" ng-click="clickTheLink()">A disableable link!</a>
私が知る限り、ディレクティブで行っていることは、CSS クラスを操作するだけなので、ngClick の動作にまったく干渉するべきではありません。
app.directive('disableable', function(){
return {
restrict: 'C',
scope: { disable: '&' },
link: function (scope, elem, attrs) {
scope.$watch(scope.disable, function (val) {
if (val){
elem.addClass('disabled');
elem.removeClass('enabled');
}
else {
elem.addClass('enabled');
elem.removeClass('disabled');
}
});
}
};
});