2017-02-20 3 views
1

Как я могу закрыть модальный до 3 секунд автоматически, если пользователь не нажимает какую-либо модальную опцию? Если пользователь ничего не делает, он автоматически закроется

Спасибо

$uibModal.open({ 
     backdrop: 'static', 
     templateUrl: 'app/components/genericConfirmModal/generic-confirm-dialog.html', 
     controller: 'GenericModalAcceptController', 
     controllerAs: 'vm', 
     size: 'md', 
     resolve: { 
     title: function() { 
      return 'Anulación ticket'; 
     }, 
     icon: function() { 
      return 'ok'; 
     }, 
     message: function() { 
      return 'El ticket se ha anulado con éxito'; 
     }, 
     buttonMessage: function() { 
      return 'Aceptar'; 
     } 
     } 
    }).result.then(function() { 
     $state.go('catalog', {}, { 
     reload: true 
     }); 
    }, function() { 
     $state.go('catalog', {}, { 
     reload: true 
     }); 
    }); 
+1

используя $ таймаут, в ypur собственного контроллера при открытии –

+0

Вы знаете, вы должны принять лучший ответ, чтобы сделать сообщество эффективным, если кто-то При поиске той же проблемы они сначала найдут лучший ответ. Примите один из следующих ответов – Rakeschand

ответ

1

Вы можете настроить $ таймаут:

var timer = $timeout(function() { 
    // Close your modal here 
}, 3000); 

Если вы хотите, чтобы отменить закрытие, вы можете использовать:

$timeout.cancel(timer); 
0

Просто используйте $timeout:

$timeout(function() { 
    $uibModal.close(); // Not sure of this synthax 
}, 3000); 
0

установка Просто время 3 секунды и закрыть модальный

$scope.cancel = cancel; 
function cancel() { 
    $uibModalInstance.dismiss('cancel'); 
    $timeout.cancel(time); 
} 

var time = $timeout(function() { 
    cancel(); 
}, 3000); 
Смежные вопросы