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