Sweetalert: Fonction sur confirmer ne fonctionne pas

Créé le 10 oct. 2014  ·  9Commentaires  ·  Source: t4t5/sweetalert

Bonjour, j'ai déjà utilisé SweetAlert avec succès mais aujourd'hui j'ai essayé de l'utiliser avec Ionic et j'ai un problème.
Quand je l'utilise comme ça, il exécute la fonction quelque chose mais il n'attend pas que le bouton de confirmation soit enfoncé :

$scope.something=function(){console.log('test')};
swal({title: 'True',text: '',type: 'success',confirmButtonText: 'Next' },$scope.something());

Quand je l'utilise comme ça, ça ne marche pas du tout :

swal({title: 'True',text: '',type: 'success',confirmButtonText: 'Next' },function(){console.log('test')});

Des idées?

Commentaire le plus utile

Le journal de la console devrait fonctionner, mais juste au cas où. N'oubliez pas qu'Angular vous devez appeler $scope.$digest(); si vous utilisez d'autres bibliothèques pour mettre à jour les vues et les étendues.

Donc, si vous utilisez l'alerte douce, assurez-vous que votre rappel ressemble à :

$scope.something=function(){
  console.log('test');
  // You might have something that updates your scope here
  ...
  $scope.$digest();
};
swal({
    title: 'True',
    text: '',
    type: 'success',
    confirmButtonText: 'Next' 
  }, $scope.something);

Tous les 9 commentaires

J'ai rencontré quelque chose de similaire en angulaire.

$scope.deleteSomething = function () {
    swal({   title: 'Are you sure?', text: 'Your will not be able to recover this thing!',
                type: 'warning',
                showCancelButton: true, confirmButtonColor: '#DD6B55',
                confirmButtonText: 'Yes, delete it!', closeOnConfirm: false },
                function () {
                    // Code to delete something
                    swal('Deleted!', 'It was deleted.', 'success');
                   // The success alert only shows for a split second and is gone
                }
          });

Cela semble être quelque chose à voir avec le fait de l'avoir dans une fonction appelée dans la portée ou simplement de l'avoir dans un callbak mais que sais-je :)

Si je comprends, je posterai ici. On dirait que quelque chose de similaire se passe ici : https://github.com/t4t5/sweetalert/issues/52

Peut-être que vous vous trompez, mais il semble que vous deviez supprimer les parenthèses sur $scope.something() en tant que rappel, comme

swal({title: 'True',text: '',type: 'success',confirmButtonText: 'Next' },$scope.something);

Lorsque vous incluez les parenthèses, l'interpréteur JS exécute $scope.something() et attribue le résultat en tant que rappel, d'où la raison pour laquelle il n'attend pas que le bouton de confirmation soit enfoncé. Dans votre deuxième exemple, vous transmettez la définition de la fonction (comme simplement en passant $scope.quelquechose sans parenthèses), c'est pourquoi cela fonctionne.

Merci mais j'ai déjà essayé et ça ne fait rien

@ schris12 vérifie ngSweetAlert . peut-être que ça peut aider

Le journal de la console devrait fonctionner, mais juste au cas où. N'oubliez pas qu'Angular vous devez appeler $scope.$digest(); si vous utilisez d'autres bibliothèques pour mettre à jour les vues et les étendues.

Donc, si vous utilisez l'alerte douce, assurez-vous que votre rappel ressemble à :

$scope.something=function(){
  console.log('test');
  // You might have something that updates your scope here
  ...
  $scope.$digest();
};
swal({
    title: 'True',
    text: '',
    type: 'success',
    confirmButtonText: 'Next' 
  }, $scope.something);

@oitozero - ngSweetAlert fonctionne à merveille ! Merci!

@oitozero , ngSweetAlert a également fonctionné pour moi. Merci!
Merci @blaiprat aussi pour le conseil et pour aider à comprendre le problème.

@SeanPlusPlus @ruairitobrien
Impressionnant. :+1:

Je viens de publier une nouvelle version pour refléter les changements dans sweetalert (0.2.0).

Merci beaucoup.
Il y a peu, voire un grand "mais" - si vous appelez dans la fenêtre de modélisation active, les boutons ne fonctionnent pas.
S'il vous plaît dites-moi comment se débarrasser du fléau?

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

fracz picture fracz  ·  4Commentaires

Lusitaniae picture Lusitaniae  ·  4Commentaires

Untit1ed picture Untit1ed  ·  5Commentaires

krishnamraju picture krishnamraju  ·  3Commentaires

voodoo6 picture voodoo6  ·  4Commentaires