从模态中单击保存后,我想在延迟几秒后隐藏消息。我需要一种延迟方法来删除" 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}"
答案 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