如何设置ibb -datepicker-popup总是在白天模式下打开

how to set uib-datepicker-popup opens always in day mode?

本文关键字:白天 模式 -datepicker-popup 何设置 设置 ibb      更新时间:2023-09-26

我对uib-datepicker-popup有这个问题,当用户打开日期选择器并进入月或年模式并关闭选择器并再次打开日期选择器时,选择器以关闭前的最后一种模式打开。我怎样才能改变uib-datepicker-popup的行为,使其始终在白天模式下打开?

我发现的一个选项是将minModemaxMode设置为day,但这样做会阻止用户进入我不想要的其他模式!

任何想法都是赞赏的!

这里有一个让你开始:Demo

可能最简单的方法是在弹出窗口显示之前强制设置日期选择器模式。在这种情况下,没有必要指定datepicker-options="{minMode: 'day', maxMode: 'day'}",这将阻止用户选择其他模式。

因此,设置datepickerMode在弹出框click事件:

$scope.open1 = function() {
  $scope.dateOptions.datepickerMode = 'day'; //<-force to set date picker mode
  $scope.popup1.opened = true;
};
<<p> 更新演示/strong>

您正在寻找的是datepicker-options指令的datepickerMode属性。

医生说

datepickerMode C(默认值:day) -日期选择器的当前模式(日|月|年)。可用于在特定模式下初始化日期选择器。

日期选择器有3种模式:

day -在此模式下,您将看到指定月份的6周日历。月—选择已选年份中的一个月。year -在此模式下,您将看到年份范围(默认为20)。

你可以在你的标记内嵌定义它,像

<div uib-datepicker ng-model="dt" datepicker-options="{'datepickerMode: 'day'}"></div>

或者只是传递一个选项对象

<div uib-datepicker ng-model="dt" datepicker-options="optionsObject}"></div>

然后将$watch设置为dt,这样当用户摆弄你的纠察时,监视器会将你的模式重置回day

$scope.$watch('dt', ()=>{
    $scope.dateOptions.datepickerMode = 'day';
});