knockout.js 在敲除功能完成后出现引导框对话框,但应该是第一个

mklgxw1f  于 2022-11-10  发布在  其他
关注(0)|答案(1)|浏览(87)

这对某些人来说可能很简单。
我正在一个已经实现了bootbox的网站上工作。我试着使用一个简单的对话框,就像它在整个网站上使用的一样,但是对话框弹出总是在我缓慢的代码运行后出现。
我有一个函数self.myFunction,它有一个有点慢的循环(由于knockout处理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时才能看到它);
干杯,任何帮助都是感激不尽的

3bygqnnd

3bygqnnd1#

一旦模态显示如下,您可以尝试执行其余代码:

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

相关问题