Sweetalert: La función de confirmar no funciona

Creado en 10 oct. 2014  ·  9Comentarios  ·  Fuente: t4t5/sweetalert

Hola, he usado SweetAlert antes con éxito, pero hoy intenté usarlo con Ionic y tengo un problema.
Cuando lo uso así, ejecuta la función algo pero no está esperando a que se presione el botón de confirmación:

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

Cuando lo uso así, no funciona en absoluto:

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

¿Algunas ideas?

Comentario más útil

El registro de la consola debería funcionar, pero por si acaso. Recuerde que Angular necesita llamar a $ scope. $ Digest (); si está utilizando otras bibliotecas para actualizar vistas y ámbitos.

Entonces, si está usando una alerta dulce, asegúrese de que su devolución de llamada se vea así:

$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);

Todos 9 comentarios

Me he encontrado con algo similar en angular.

$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
                }
          });

Parece tener algo que ver con tenerlo en una función llamada en el alcance o simplemente tenerlo en un callbak, pero ¿qué sé yo? :)

Si lo averiguo, lo publicaré aquí. Parece que tal vez esté sucediendo algo similar aquí: https://github.com/t4t5/sweetalert/issues/52

Puede estar equivocado, pero parece que necesita eliminar los parens en $ scope.something () como la devolución de llamada, como

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

Cuando incluye los parens, el intérprete de JS ejecuta $ scope.something () y asigna el resultado como devolución de llamada, por lo que no está esperando a que se presione el botón de confirmación. En su segundo ejemplo, está pasando la definición de la función (lo mismo que pasar $ scope.something sin parens), por lo que está funcionando.

Gracias, pero ya lo intenté y no está haciendo nada.

@ schris12 comprobar ngSweetAlert . tal vez pueda ayudar

El registro de la consola debería funcionar, pero por si acaso. Recuerde que Angular necesita llamar a $ scope. $ Digest (); si está utilizando otras bibliotecas para actualizar vistas y ámbitos.

Entonces, si está usando una alerta dulce, asegúrese de que su devolución de llamada se vea así:

$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 funciona como un encanto! ¡Gracias!

@oitozero , ngSweetAlert también funcionó para mí. ¡Gracias!
Gracias @blaiprat también por el consejo y ayudarnos a comprender el problema.

@SeanPlusPlus @ruairitobrien
Impresionante. : +1:

Acaba de lanzar una nueva versión para reflejar los cambios en sweetalert (0.2.0).

Muchas gracias.
Hay poco, o incluso un gran "pero": si llama a la ventana de modelado activa, los botones no funcionan.
Por favor, dime cómo deshacerme del flagelo.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

xgqfrms-GitHub picture xgqfrms-GitHub  ·  4Comentarios

Untit1ed picture Untit1ed  ·  5Comentarios

yrshaikh picture yrshaikh  ·  4Comentarios

adiwithadidas picture adiwithadidas  ·  4Comentarios

rapeflower picture rapeflower  ·  4Comentarios