ホームページ > ウェブフロントエンド > jsチュートリアル > angular ng-click はインスタンスの繰り返しの送信を防ぎます

angular ng-click はインスタンスの繰り返しの送信を防ぎます

零下一度
リリース: 2017-06-24 14:32:13
オリジナル
1723 人が閲覧しました

方法 1: クリック後、ボタンのステータスを無効に変更します

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:

<button type="button" class="btn btn-info btn-bordered waves-effect w-md waves-light" click-and-disable="next()">下一步</button>   //把 ng-click 改为指令click-and-disable
ログイン後にコピー
<br>
ログイン後にコピー

方法 2: app.config で ng-click を書き換えますイベント、特定のイベントを繰り返しクリックできないように設定します

$provide.decorator('ngClickDirective',['$delegate','$timeout', function ($delegate,$timeout) {  //记得在config里注入$provide
            var original = $delegate[0].compile;
            var delay = 500;//设置间隔时间
            $delegate[0].compile = function (element, attrs, transclude) {

                var disabled = false;
                function onClick(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);

                return original(element, attrs, transclude);
            };
            return $delegate;
        }]);
ログイン後にコピー

以上がangular ng-click はインスタンスの繰り返しの送信を防ぎますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート