Sweetalert: Função em confirmar não funciona

Criado em 10 out. 2014  ·  9Comentários  ·  Fonte: t4t5/sweetalert

Olá, eu usei o SweetAlert antes com sucesso, mas hoje tentei usá-lo com o Ionic e estou com um problema.
Quando eu o uso assim, ele executa a função algo, mas não está esperando que o botão de confirmação seja pressionado:

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

Quando eu uso assim, não funciona de jeito nenhum:

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

Alguma ideia?

Comentários muito úteis

O log do console deve funcionar, mas apenas no caso. Lembre-se de que você precisa chamar o Angular $ scope. $ Digest (); se você estiver usando outras bibliotecas para atualizar visualizações e escopos.

Portanto, se você estiver usando o alerta doce, certifique-se de que seu retorno de chamada seja semelhante a:

$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 comentários

Eu encontrei algo semelhante no 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 ter algo a ver com tê-lo em uma função chamada no escopo ou apenas em um callbak, mas o que eu sei :)

Se eu descobrir, postarei aqui. Parece que algo semelhante está acontecendo aqui: https://github.com/t4t5/sweetalert/issues/52

Pode estar enganado, mas parece que você precisa remover os parênteses em $ scope.something () como a chamada de volta, como

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

Quando você inclui os parênteses, o interpretador JS está executando $ scope.something () e atribuindo o resultado como retorno de chamada, por isso não está esperando que o botão de confirmação seja pressionado. Em seu segundo exemplo, você está passando a definição da função (o mesmo que apenas passando $ scope.something sem parênteses) e é por isso que está funcionando.

Obrigado, mas eu já tentei isso e não está fazendo nada

@ schris12 verifique o ngSweetAlert . talvez possa ajudar

O log do console deve funcionar, mas apenas no caso. Lembre-se de que você precisa chamar o Angular $ scope. $ Digest (); se você estiver usando outras bibliotecas para atualizar visualizações e escopos.

Portanto, se você estiver usando o alerta doce, certifique-se de que seu retorno de chamada seja semelhante a:

$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 perfeitamente! obrigado!

@oitozero , ngSweetAlert funcionou para mim também. Obrigado!
Obrigado @blaiprat também pela dica e por ajudar a entender o problema.

@SeanPlusPlus @ruairitobrien
Incrível. : +1:

Acaba de lançar uma nova versão para refletir as mudanças no sweetalert (0.2.0).

Muito Obrigado.
Há pouco, ou mesmo um grande "mas" - se você chamar na janela de modelagem ativa, os botões não funcionarão.
Por favor, me diga como me livrar do flagelo?

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

Untit1ed picture Untit1ed  ·  5Comentários

Lusitaniae picture Lusitaniae  ·  4Comentários

fracz picture fracz  ·  4Comentários

xgqfrms-GitHub picture xgqfrms-GitHub  ·  4Comentários

AlexV525 picture AlexV525  ·  4Comentários