2015-09-22 3 views
1

После нажатия кнопки save из модального файла я хочу скрыть сообщение после задержки в несколько секунд. Мне нужен метод задержки, чтобы удалить класс «в» через несколько секунд.AngularJS удалить задержку класса

Plunker: http://plnkr.co/edit/IrIt4G7HzAoi4uh7euVu?p=preview

HTML: Чтобы скрыть сообщение, удалите класс "в".

<div class="alert alert-success text-center fade in" data-ng-show="messageSuccessText">{{messageSuccessText}}</div> 

Это функция, которая показывает сообщение:

modalInstance.result.then(function (result) { 
    $scope.selected = result.item; 
    $scope.messageSuccessText = result.message; 
}, function() { 
    $log.info('Modal dismissed at: ' + new Date()); 
}); 

мне нужен метод задержки, чтобы удалить класс «в» через несколько секунд.

Редактировать Используя предложенную $ таймаут я добавил это к моему HTML сообщение:

ng-class="{'in':messageSuccessText}" 

ответ

3

Вы должны проверить the $timeout service

Я изменил код так:

App.controller('myCtrl', function ($scope, $http, $log, $modal, $timeout) {  
    modalInstance.result.then(function (result) { 
     $scope.selected = result.item; 
     $scope.messageSuccessText = result.message; 

     $timeout(function(e){ 
     $scope.messageSuccessText = null; 
     }, 2000) 
    }, function() { 
     $log.info('Modal dismissed at: ' + new Date()); 
}); 

Вместо того, чтобы удалить класс «in», я просто вернул текст сообщения в нуль чтобы воспользоваться вашим ng-show. Я включил службу $timeout в список зависимостей для ввода и добавил простой обратный вызов с задержкой в ​​2000 мс с помощью службы тайм-аута. I forked your plunkr here

Смежные вопросы