2017-07-10 43 views
0

我在网格单元格上使用了append-to-body =“true”属性的多个弹出窗口。当我向下滚动网格时,我想以编程方式隐藏弹出窗口。Angular Bootstrap Popover在关闭后需要2次点击才能打开

目前我使用此代码隐藏

 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次点击打开关闭popovers之一。关闭所有附加到身体的弹出窗口的正确方法是什么?

回答

1

我想你搞乱了酥料饼的触发设置,尝试设置popover-triggernone

popover-trigger="'none'" 

,然后提供一个表达式popover-is-open

popover-is-open="$expression_result" 

时表达式会false您popover将关闭(反之亦然)

ps

我注意到你正在使用这条线

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

不要让你的popovers,它会更容易保持表达的阵列控制器,其项目被绑定到每个popover-is-open内,那么在某些事件中,您可以轻松遍历该数组并操纵弹出。

+0

谢谢 - 我有触发器设置为点击。我将触发器更改为none,并使用数组来保存popover-is-open的所有值。 popover-is-open被设置为一个函数,该函数在数组中为特定的弹出窗口查找值。 – MasterN8

相关问题