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
,然后在某些事件上,你可以轻松地遍历该数组并操纵你的弹出窗口.
我在网格单元格上有多个弹出框,我在它们上面使用了 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
,然后在某些事件上,你可以轻松地遍历该数组并操纵你的弹出窗口.