2016-06-22 10 views
2

Я пытаюсь создать диалоговое окно подтверждения в angularjs, я нашел ответ на вопрос о том, что в stackoverflow Confirmation dialog on ng-click - AngularJS Я попробовал его, как он ответил, но когда я нажимаю отменить, он работает так, как будто я нажал OK ответ неправильно или я должен добавить что-то еще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

Я была такая же проблема, и я решил с помощью своей же директивы, но, вместо того чтобы использовать ng-click для окончательного действия при подтверждении пользователя, я использовал атрибут 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

Ответ на запись. Просто измените «нг-нажмите кнопку», чтобы «подтвердил щелчок», и он будет работать нормально

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

Просто проверьте дощечки Here

Смежные вопросы