如何使用setInterval执行函数?

时间:2016-05-09 14:22:59

标签: javascript angularjs timeout settimeout setinterval

我有模态窗口,我有函数setConfirmation基于逻辑设置模态窗口按钮(是,否和确定),现在当调用ok按钮okCallback时我想设置是和否按钮返回模态窗口,因为这些是默认按钮。

现在,当用户点击确定时,我们关闭了模态窗口但是没有闪烁几分之一秒,所以我创建了另一个函数resetConfirmation,我从successCallBack调用但是(是和否)按钮在模态窗口关闭之前,它仍会闪烁一秒。

如何在1秒后执行resetConfirmation function以解决我认为的问题,或者其他任何建议也会受到赞赏?

main.js

   var setConfirmationWinButtons = function(hideYesBtn, hideNoBtn, showOkBtn) {
     $scope.hideYesBtn = hideYesBtn;
     $scope.hideNoBtn = hideNoBtn;
     $scope.showOkBtn = showOkBtn;
 };

 $scope.successMessage = function(mesg) {
     setConfirmationWinButtons(true, true, true);
     $scope.messageText = mesg;
     $scope.confirmationWin.open().center();
     $scope.okCallback = $scope.successCallBack;
 };
 $scope.successCallBack = function() {
     $scope.confirmationWin.close();
     resetCofirmationWin();
 };
 var resetCofirmationWin = function() {
     setConfirmationWinButtons(false, false, false);
 };

1 个答案:

答案 0 :(得分:0)

1) 注入$ timeout,然后使用代码:

yourArray[0].value.Image.bright

2)您还可以使用简单的超时:

$timeout(function() { 
  resetConfirmationWin(); 
}, 1000);

性能更高,因为它不会触发setTimeout(function() { resetConfirmationWin(); }, 1000); ,但是您可能会错过模型更新。

不建议在样式指南中使用。