【发布时间】:2016-09-04 05:37:22
【问题描述】:
我有模态窗口,我有函数setConfirmation 来根据逻辑设置模态窗口按钮(是、否和确定),现在当调用确定按钮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);
};
【问题讨论】:
-
注入
$timeout并使用$timeout(function() { resetConfirmationWin(); }, 1000) -
所以在这种情况下我需要在
successCallback函数之前声明resetConfirmationWin函数,这样它就不会抛出错误reset is not defined -
收到此错误
angular.js:11594 ReferenceError: resetConfirmationWin is not defined甚至在successCallback之前定义 -
我明白了,谢谢你的帮助
标签: javascript angularjs timeout settimeout setinterval