1

我正在使用UI引導下拉元件在點擊時顯示angular-bootstrap-datetimepicker日曆。我工作得很好,但日曆塊只在點擊時關閉,當你點擊日曆時它不會。在日期點擊關閉角度自舉日期時間點擊

如何在不使用jQuery的情況下使日曆塊的日曆塊關閉onclick

Plunker
GIF

<div uib-dropdown> 
    <h4> 
    <a uib-dropdown-toggle href="">Select Date <b class="caret"></b> 
    </a> 
    </h4> 
    <ul uib-dropdown-menu> 
    <datetimepicker data-ng-model="date" data-datetimepicker-config="{ startView:'month', minView:'month' }"></datetimepicker> 
    </ul> 
</div> 

回答

1

你並不需要jQuery的。您可以使用$scope.$watchangular.element自動關閉是:

$scope.$watch('date',function(newValue){ 
    newElement=angular.element(document.getElementsByClassName('.uib-dropdown')) 
    if(!newValue) return 
    angular.element(document.getElementsByClassName('dropdown')).removeClass('open') 
    }) 

請參見本Plnkr例如使用:https://plnkr.co/edit/tJr7XO5dJUrIWshyfKX6?p=preview

剛一說明:這是更好地使用標籤的ID,而不是類名(如果你有多個下拉菜單)。

刪除和添加的open類是相當於單擊下拉箭頭(與顯示和隱藏日曆)

+0

謝謝,這解決了我的問題 –

+0

我注意到一個小問題與解決方案。選擇日期後,日曆塊僅在第二次點擊時打開。你知道我該如何預防? –

+0

問題在aria展開 –

相關問題