2016-06-22 26 views
2

を働いていない、私は私がクリックしたとき、私はそれが私かのように動作し、キャンセルそれが答えているとして、それを試してみましたが、stackoverflowの Confirmation dialog on ng-click - AngularJS にそれについて答え質問を見つけましたクリックされた私は、同じ問題を抱えていた、と私はあなたと同じディレクティブを使用して解決し、しかし、代わりにを使用してのOKが間違った答えであるか、私は何か他のものangularjs:確認ダイアログは、私がangularjsに確認ダイアログを作成しようとしています適切に

<button type="button" ng-click="updateData()" ng-confirm-click="Are you sure?"> 
      Update 
    </button> 

ディレクティブ

app.directive('ngConfirmClick', [ 
    function(){ 
     return { 
      link: function (scope, element, attr) { 
       var msg = attr.ngConfirmClick || "Are you sure?"; 
       var clickAction = attr.confirmedClick; 
       element.bind('click',function (event) { 
        if (window.confirm(msg)) { 
         scope.$eval(clickAction) 
        } 
       }); 
      } 
     }; 
}]) 

答えて

2

を追加する必要がありますユーザー確認の最終的なアクションについては、最後のアクションを値としてconfirmed-clickという属性を使用しました。

HTML:

<button confirmed-click="confirm()" ng-confirm-click="Are you really sure?">Update</button> 

ディレクティブ:

app.directive('ngConfirmClick', [ 
    function() { 
     return { 
      link: function (scope, element, attr) { 
       var msg = attr.ngConfirmClick || "Are you sure?"; 
       var clickAction = attr.confirmedClick; 
       element.bind('click',function (event) { 
        if (window.confirm(msg)) { 
         scope.$eval(clickAction) 
        } 
       }); 
      } 
     }; 
    } 
]); 

このfiddleを参照してください。

+0

プランクが、それはポイントが '確認ということです感謝 – george

+0

の作品() 'アクションは、指示コードによって呼び出され、ユーザが彼女の選択を確認した後でなければなりません....' ng-click'を使うと、アクションは最初のクリックで呼び出されます... – MarcoS

0

答えは書き込みです。ただ、「確認クリック」して「NGクリック」に変更し、それが動作する罰金

<button type="button" confirmed-click="updateData()" ng-confirm-click="Are you sure?"> 
      Update 
    </button> 

ちょうどチェックし、私はそれを理解していなかったHere

関連する問題