2015-04-28 10 views
0

Я заканчиваю с этим кодом:Confirm директива в AngularJS не работает

MetronicApp.directive('confirmClick', ['SweetAlert', 
function(SweetAlert) { 
    return { 
     priority: 100, 
     restrict: 'A', 
     scope: { 
      confirmClick: '&' 
     }, 
     link: { 
      pre: function(scope, element, attr) { 
       var msg = attr.ngConfirmClick || "Are you sure?"; 
       var clickAction = attr.confirmedClick; 
       element.bind('click touchstart', function(event) { 
        SweetAlert.swal({ 
          title: "Are you sure?", 
          text: "Your will not be able to recover this imaginary file!", 
          type: "warning", 
          showCancelButton: true, 
          confirmButtonColor: "#DD6B55", 
          confirmButtonText: "Yes, delete it!", 
          cancelButtonText: "No, cancel plx!", 
          closeOnConfirm: false, 
          closeOnCancel: true 
         }, 
         function(isConfirm) { 
          if (isConfirm) { 
           scope.confirmClick(); 
          } 
          else{ 
           return false; 
          } 
         }); 
       }); 
      } 
     } 
    }; 
} 
]); 
+0

Какая ошибка вы получаете? – manzapanza

+0

На стороне примечания: никогда не используйте 'ng' в своих именах директив, это должно быть для директив, созданных только угловыми. Делает это запутанным для других разработчиков! Используйте пользовательский для вас/вашей компании, скажем, 'myConfirmClick' –

+0

@manzapanza. Я не ошибаюсь. Но это не работает как подтверждение. – Burak

ответ

1

ng-click="delete(theme)" всегда будет срабатывать вашим щелчком

Что нужно сделать, это передать вашу функцию в вашей директиве:

MetronicApp.directive('ngConfirmClick', ['SweetAlert', 
function(SweetAlert) { 
return { 
    priority: 100, 
    restrict: 'A', 
    scope: { 
     ngConfirmClick : '&' 
    }, 
    link: { 
     pre: function(scope, element, attr) { 
      var msg = attr.ngConfirmClick || "Are you sure?"; 
      var clickAction = attr.confirmedClick; 
      element.bind('click touchstart', function(event) { 

       SweetAlert.swal({ 
         title: "Are you sure?", 
         text: "Your will not be able to recover this imaginary file!", 
         type: "warning", 
         showCancelButton: true, 
         confirmButtonColor: "#DD6B55", 
         confirmButtonText: "Yes, delete it!", 
         cancelButtonText: "No, cancel plx!", 
         closeOnConfirm: false, 
         closeOnCancel: false 
        }, 
        function(isConfirm) { 
         if (isConfirm) { 
          ngConfirmClick(); 
          SweetAlert.swal("Deleted!", "Your imaginary file has been deleted.", "success"); 
         } else { 
          SweetAlert.swal("Cancelled", "Your imaginary file is safe :)", "error"); 
         } 
        }); 
      }); 
     } 
    } 
}; 

}

и использовать директиву, что путь :

<a ng-confirm-click="delete(theme)" class="btn btn-danger btn-md ng-scope" >Delete</a> 
+0

Спасибо @Deblaton Жан-Филипп. Я отметил ваш ответ как ответ на мой вопрос. – Burak

-3

Я вижу, что вы пропустите кронштейн [ «SweetAlert» добавить кронштейн и попробуйте еще раз добавить его в конце функции.

MetronicApp.directive('ngConfirmClick', ['SweetAlert', 
function(SweetAlert) { 
return { 
    priority: 100, 
    restrict: 'A', 
    link: { 
     pre: function(scope, element, attr) { 
      var msg = attr.ngConfirmClick || "Are you sure?"; 
      var clickAction = attr.confirmedClick; 
      element.bind('click touchstart', function(event) { 

       SweetAlert.swal({ 
         title: "Are you sure?", 
         text: "Your will not be able to recover this imaginary file!", 
         type: "warning", 
         showCancelButton: true, 
         confirmButtonColor: "#DD6B55", 
         confirmButtonText: "Yes, delete it!", 
         cancelButtonText: "No, cancel plx!", 
         closeOnConfirm: false, 
         closeOnCancel: false 
        }, 
        function(isConfirm) { 
         if (isConfirm) { 
          SweetAlert.swal("Deleted!", "Your imaginary file has been deleted.", "success"); 
         } else { 
          SweetAlert.swal("Cancelled", "Your imaginary file is safe :)", "error"); 
         } 
        }); 
      }); 
     } 
    } 
};}]) 
+1

Где его добавить? Я думаю, что это уже было добавлено. – Burak