Angular Bootstrap Popover 关闭后需要点击 2 次才能打开

Angular Bootstrap Popover takes 2 clicks to open after closing

我在网格单元格上有多个弹出框,我在它们上面使用了 append-to-body="true" 属性。当我向下滚动网格时,我想以编程方式隐藏弹出窗口。

目前我正在使用此代码隐藏它们

     function closeAllPopOvers() {
        var popups = document.querySelectorAll('.popover');
        if(popups) {
            for(var i=0; i<popups.length; i++) {
                var popup = popups[i];
                var popupElement = angular.element(popup);
                popupElement.scope().$parent.isOpen = false;
                popupElement.remove();
            }
        }
    }

这里出现的问题是,如果我返回到被此代码关闭的弹出窗口之一,则需要单击 2 次才能打开。关闭所有附加到正文的弹出窗口的正确方法是什么?

我认为你弄乱了弹出窗口触发器设置,请尝试将 popover-trigger 设置为 none

popover-trigger="'none'"

然后提供表达式给popover-is-open

popover-is-open="$expression_result"

当该表达式的计算结果为 false 时,您的弹出窗口将关闭(反之亦然)

p.s.

我注意到您正在使用这条线获取弹出窗口

var popups = document.querySelectorAll('.popover');

不要,在你的控制器中保存一个表达式数组会更容易,它的项目绑定到每个 popover-is-open,然后在某些事件上,你可以轻松地遍历该数组并操纵你的弹出窗口.