ng-disabledが機能しない解決策


これがAngularだとは知らなかったjsのバグです.しかし、検索してみると、融通のきく解決策が見つかった.
ビジネスニーズは、ボタンが1回クリックされると無効に設定され、複数回無効なクリックを阻止します.しかし、現在では多くのフレームワークが<div>または他のラベルでbutton効果を実現しています.私はプロのUIではありません.このようにしてもいいかどうか分かりません.どうすればいいですか.<button>の上では、ng-disabledはすべて正常です(<button>は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<div>に変更すると、ng-disabledフラグは機能しなくなります.要素を無効に設定しますが、クリックするとng-clickがトリガーされます.
解決策は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