不知道这算不算 Angular.js 的一个bug。但搜索一番后找到了一个变通的解决办法。
业务需求是这样的,按钮被点击一次之后就设置为禁用状态,以阻止多次无效的点击。但现在很多框架都用
在 上面时 ng-disabled 一切正常(因为 支持 disabled ):
<button ng-click="do_something()" ng-disabled="button_clicked">Click Me</button>
相关的逻辑代码如下:
angular.module('ngToggle',[])
.controller('AppCtrl',['$scope',function($scope){
$scope.button_clicked = false;
$scope.do_something = function() {
alert("Clicked!");
$scope.button_clicked = true;
return false;
}
}]);
但将 button 变为
解决办法是在 ng-click 里面先判断参数的值:
<div ng-click="button_clicked || do_something()" ng-disabled="button_clicked">Click Me</div>
很简单也很有效,一个短路或。 短路或 || 的运算规则是,如果左边的表达式为 true,则返回true,不再计算右边表达式。
欢迎加入: CNC开源组件开发交流群 316630025
原文链接: http://baudehlo.com/2014/02/24/angular-js-ng-click-still-fires-when-div-is-ngdisabled/
原文日期: 2014年02月24日
翻译日期: 2016年01月07日
翻译人员: 铁锚 http://blog.csdn.net/renfufei
确实有效果,转载一下
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。