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

时间:2017-07-10 19:04:45

标签: angularjs angular-ui-bootstrap

我在网格单元格上有多个弹出框,我使用了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次。什么是关闭所有追加到身体的弹出窗口的正确方法?

1 个答案:

答案 0 :(得分:1)

我认为你搞乱了弹出式触发设置,尝试将popover-trigger设置为none

popover-trigger="'none'"

然后提供popover-is-open

的表达式
popover-is-open="$expression_result"

当该表达式评估为false时,您的popover将关闭(反之亦然)

P.S。

我注意到你正在使用这条线获得你的弹出窗口

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

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