我使用的是bootstrap模式,有时需要一段时间来加载其window.html
模板。此模式在ng-click
事件中打开,如果用户的Internet连接速度很慢,用户通常有机会在模板加载前多次单击该元素。
在加载模板时,有没有办法全局禁用ng-click
事件?有没有其他方法可以解决此问题,而无需使用if (isLoading) return; isLoading=true; ..; isLoading=false;
答案 0 :(得分:1)
使用ng-click
启用ng-disabled
<button ng-click="isLoading=true;" ng-disabled="isLoading" ng-switch="isLoading">
<span ng-switch-when="true">Loading...</span>
<span ng-switch-when="false">I can now be clicked again</span>
</button>
然后,将isLoading
设置回false
,但您认为合适。也许在success
回调中,如果你有一个。
如果你计划这么做,你总是可以创建一个自定义指令。
或者,如果您正在使用Angular + Bootstrap,请帮自己一个忙,并使用UIBootstap - 以纯Angular-no bootstrap.js编写的Bootstrap指令。