敲除功能完成后出现Bootbox对话框,但应先出现

时间:2019-09-05 11:43:40

标签: javascript knockout.js bootbox

这对某人来说可能很简单。

我正在一个已实施引导箱的网站上工作。我曾经尝试过使用一个简单的对话框,就像在整个站点中一样,但是在我的慢速代码运行之后,对话框总是弹出。

我有一个函数self.myFunction,它的循环有点慢(由于敲除如何处理foreach),因此应该在循环运行时显示弹出窗口,但是要等到循环结束然后才出现

我尝试更改代码中的事物顺序。我尝试过将对话框放入循环中(从技术上讲,它可以工作,但不是我需要的)。我尝试在使对话框出现的调用之后立即设置超时,但也要等到循环完成后再执行。

self.checkPermCol = function () {

    //call bootbox
    bootbox.dialog({
        size: 'small',
        message: '<div class="text-center"><i class="fal fa-spin fa-spinner"></i>Please wait...</div>'
    });


    //some logic
    var setTo = "N";
    if ($('#' + event.target.id).prop("checked")) {
        setTo = "Y";
    }
    ko.utils.arrayForEach(self.user().Securities(), function (security) {
        security[event.target.id](setTo);
    });


    //dismiss bootbox
    bootbox.hideAll();

    return true;
};

我希望弹出窗口在循环播放时显示出来,并希望在循环播放后立即消失。

弹出窗口出现在循环之后,并被立即关闭(仅当我删除hideAll后,我才能看到它;

干杯,我们将不胜感激

1 个答案:

答案 0 :(得分:0)

模式显示如下后,您可以尝试执行其余代码:

dialog.on('shown.bs.modal', function(e){
    // Do something with the dialog just after it has been shown to the user...
});

此处参考:http://bootboxjs.com/documentation.html