角度ui引导日期选择器的多种日期格式

时间:2015-04-20 16:40:54

标签: angularjs datepicker angular-ui angular-ui-bootstrap

我的应用程序中有以下HTML。

<p class="input-group">
    <input ng-model="myDate" datepicker-popup="MM/dd/yyyy" 
           is-open="isopen" />
    <span style="cursor:pointer" ng-click="opendate($event)" class="input-group-addon input-sm"><i class="glyphicon glyphicon-calendar"></i></span>
</p>

我想在用户以4.3.20154.3.15格式输入日期时填充ngModel,但目前我将ngModel作为未定义。 我如何告诉datepicker也接受其他日期格式?

请检查此plunkr http://plnkr.co/edit/t1f9AkHeKzvyPTQNzvxf?p=preview,这适用于Chrome,但不适用于IE。您可以在chrome中键入4.4.15并且它可以工作,同样在IE中不起作用

2 个答案:

答案 0 :(得分:1)

如果我理解正确,您希望允许用户决定他们如何输入日期格式?

据我所知,日期格式需要事先定义,并且不能在用户填写时“检测”。但是,您可以在控制器中创建一个具有可接受日期格式的数组:

// Accepted date formats.
$scope.formats = ['MM/dd/yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];

// Default date format.
$scope.format = $scope.formats[0];

将HTML输入字段中的datepicker-popup属性更改为datepicker-popup="{{format}}"

用户可以在视图中有一个下拉列表(HTML select)菜单,用户可以在其中选择首选日期格式,这将更改$scope.format的值。 datepicker将相应更改。

答案 1 :(得分:1)

我在DateParser上使用了 alt-input-formats 来提供替代格式

alt-input-formats (Default: []) - A list of alternate formats acceptable for manual entry.