angular ng-click防止重复提交实例
方法一:点击后,让button的状态变为disable
js指令:
.directive('clickAndDisable',function(){
return{
scope:{
clickAndDisable:'&'
},
link:function(scope,iElement,iAttrs){
iElement.bind('click',function(){
iElement.prop('disabled',true);
scope.clickAndDisable().finally(function(){
iElement.prop('disabled',false);
})
});
}
};
})
html:
下一步 //把ng-click改为指令click-and-disable 
方法二:在app.config里面,重写ng-click事件,设置一定事件内不能重复点击
$provide.decorator('ngClickDirective',['$delegate','$timeout',function($delegate,$timeout){//记得在config里注入$provide
varoriginal=$delegate[0].compile;
vardelay=500;//设置间隔时间
$delegate[0].compile=function(element,attrs,transclude){
vardisabled=false;
functiononClick(evt){
if(disabled){
evt.preventDefault();
evt.stopImmediatePropagation();
}else{
disabled=true;
$timeout(function(){disabled=false;},delay,false);
}
}
//scope.$on('$destroy',function(){iElement.off('click',onClick);});
element.on('click',onClick);
returnoriginal(element,attrs,transclude);
};
return$delegate;
}]);
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
