AngularJS删除类延迟

时间:2015-09-22 21:15:44

标签: javascript angularjs

从模态中单击保存后,我想在延迟几秒后隐藏消息。我需要一种延迟方法来删除" in"几秒钟后。

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

我需要一种延迟方法来删除&#34;&#34;几秒钟后。

修改 使用建议的$ timeout我将其添加到我的HTML消息中:

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

1 个答案:

答案 0 :(得分: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());
});

而不是删除&#34; in&#34; class,我只需将消息文本设置回null即可利用您的ng-show。我将$timeout服务包含在要注入的依赖项列表中,并使用超时服务添加了一个延迟为2000ms的简单回调。 I forked your plunkr here