UIブートストラップドロップダウンコンポーネントを使用してクリック時にangular-bootstrap-datetimepickerカレンダーを表示しています。また、日付が選択された後にドロップダウンを閉じるために$watch
を追加しました。UIブートストラップドロップダウントグルを手動で閉じると2回クリックする必要があります
<div uib-dropdown id="calendar1">
<h4>
<a uib-dropdown-toggle id="calendar1-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>
$scope.$watch('date', function(newValue){
angular.element(document.getElementById('calendar1')).removeClass('open');
})
removeClass('open')
は働いていたが、また新たな問題をもたらしました。日付(removeClass('open')
が呼び出された)を選択したら、ドロップダウンを2回クリックして開く必要があります。
私は、uib
ソースコードに見えたいくつかの掘削を行なったし、次のことを試してみました:
window.angular.element(document.getElementById('calendar1')).removeClass('open');
window.angular.element(document.getElementById('calendar1-toggle'))
.removeClass('collapse')
.addClass('collapsing')
.attr('aria-expanded', false)
.attr('aria-hidden', true);
しかし、私はまだ二回トグルを押していました。私は間違って何をしていますか?
は、なぜあなたはオープン/クローズしようとしています手動でクラスを追加/削除することによる 'uib-dropdown'ですか? 'uib-dropdown'には、それを処理するための' is-open'属性があります。 –
@JoelCDoyleカレンダーで日付を選択した後にドロップダウンを手動で終了したいからです。 –
@JoelCDoyle私が正しく理解していれば、 'is-open' attrは初期化のためだけです –