Здравствуйте, раньше я успешно использовал SweetAlert, но сегодня я попытался использовать его с Ionic, и у меня возникла проблема.
Когда я использую его таким образом, он выполняет функцию something, но не дожидается нажатия кнопки подтверждения:
$scope.something=function(){console.log('test')};
swal({title: 'True',text: '',type: 'success',confirmButtonText: 'Next' },$scope.something());
Когда я использую это так, он вообще не работает:
swal({title: 'True',text: '',type: 'success',confirmButtonText: 'Next' },function(){console.log('test')});
Любые идеи?
Я наткнулся на нечто подобное в 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
}
});
Кажется, что-то связано с тем, что он находится в функции, вызываемой в области видимости, или просто имеет его в callbak, но что я знаю :)
Если разберусь, опубликую здесь. Похоже, здесь происходит что-то подобное: https://github.com/t4t5/sweetalert/issues/52
Возможно, вы ошибаетесь, но похоже, что вам нужно удалить скобки в $ scope.something () в качестве обратного вызова, например
swal({title: 'True',text: '',type: 'success',confirmButtonText: 'Next' },$scope.something);
Когда вы включаете скобки, интерпретатор JS выполняет $ scope.something () и назначает результат как обратный вызов, поэтому он не ждет нажатия кнопки подтверждения. Во втором примере вы передаете определение функции (так же, как просто передаете $ scope.something без скобок), поэтому это работает.
Спасибо, но я уже пробовал это, но ничего не делает
@ schris12 проверьте ngSweetAlert . может это может помочь
Журнал консоли должен работать, но на всякий случай. Помните, что в Angular вам нужно вызвать $ scope. $ Digest (); если вы используете другие библиотеки для обновления представлений и областей видимости.
Поэтому, если вы используете сладкое оповещение, убедитесь, что ваш обратный вызов выглядит так:
$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 работает как шарм! Благодарность!
@oitozero , ngSweetAlert у меня тоже работал. Спасибо!
Спасибо @blaiprat за подсказку и помощь в понимании проблемы.
@SeanPlusPlus @ruairitobrien
Потрясающие. : +1:
Только что выпущена новая версия, отражающая изменения в sweetalert (0.2.0).
Большое спасибо.
Есть небольшое или даже большое «но» - при вызове активного окна моделирования кнопки не работают.
Подскажите пожалуйста, как избавиться от напасти?
Самый полезный комментарий
Журнал консоли должен работать, но на всякий случай. Помните, что в Angular вам нужно вызвать $ scope. $ Digest (); если вы используете другие библиотеки для обновления представлений и областей видимости.
Поэтому, если вы используете сладкое оповещение, убедитесь, что ваш обратный вызов выглядит так: