2017-07-10 55 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