Angular UI Bootstrap日期选择器与UI. mask结合使用
Angular UI Bootstrap date-picker Combined With UI.Mask
我正在使用angular UI引导弹出式日期选择器来构建一个指令,它将允许我轻松地在需要的地方添加日期选择器。
当我将它与uiMask指令结合使用时,当我选择日期时,输入中的值会被打乱。
这是我的html:
<p class="input-group">
<input type="text" class="form-control"
ui-mask="99/99/9999"
ng-model="ngModel"
ng-model="order.date"
datepicker-popup="MM/dd/yyyy"
is-open="opened"
datepicker-options="dateOptions"
date-disabled="disabled(date, mode)"
ng-required="true"
close-text="Close" />
<span class="input-group-btn">
<button type="button" class="btn btn-default" ng-click="open($event)">
<i class="glyphicon glyphicon-calendar"></i>
</button>
</span>
</p>
And my JS:
/**
* DATE PICKER
*/
$scope.today = function () {
$scope.dt = new Date();
};
$scope.today();
$scope.clear = function () {
$scope.dt = null;
};
// Disable weekend selection
$scope.disabled = function (date, mode) {
return (mode === 'day' && (date.getDay() === 0 || date.getDay() === 6));
};
$scope.toggleMin = function () {
$scope.minDate = $scope.minDate ? null : new Date();
};
$scope.toggleMin();
$scope.open = function ($event) {
$event.preventDefault();
$event.stopPropagation();
$scope.opened = true;
};
$scope.dateOptions = {
formatYear: 'yy',
startingDay: 1
};
$scope.initDate = new Date('2016-15-20');
$scope.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];
$scope.format = $scope.formats[0];
我希望能够使用ui掩码功能,使键入日期更容易,而不必键入/
。有可能把这些结合起来使用吗?
下面的代码片段适合我:
.config(function ($provide) {
$provide.decorator('datepickerPopupDirective', function ($delegate) {
var directive = $delegate[0];
var link = directive.link;
directive.compile = function () {
return function (scope, element, attrs) {
link.apply(this, arguments);
element.mask("99/99/9999");
};
};
return $delegate;
});
});
它只是用一个由jquery.maskedinput.js提供的掩码来装饰日期选择器指令。玩得开心!
UPDATE (May 13 2015)
一个柱塞来说明它的工作原理:http://plnkr.co/edit/fTFNu9Mp2kX5X1D6AJOx?p=preview
查看案例4:https://plnkr.co/edit/0Vr5YRVREIT5EMu1m55z?p=preview
model-view-value="true":<input name="date4" id="date4" type="text" class="form-control" uib-datepicker-popup="dd/MM/yyyy"
ui-mask="99/99/9999" placeholder="DD/MM/YYYY" ng-model="date4" ng-required="true"
model-view-value="true" is-open="popup4.opened" datepicker-options="dateOptions"
show-button-bar="false"/>
<span class="input-group-btn">
<button type="button" class="btn btn-default" ng-click="open4()"><i class="fa fa-calendar fa-1"></i></button>
</span>
当我试着重现你的挑战时,我首先想到的是:
new Date('2016-15-20');
返回Invalid Date
也许这是一个开始寻找解决方案的地方。那是几号?15个月还是20个月?不管怎样,这都行不通。为$scope.initDate
提供有效的日期。也许你指的是"2016-12-20"?
你能不能就你的情况举一个小例子,我们可以用它来测试可能的解决方案?你所说的"混乱输入"到底是什么?同样,请提供一个问题和期望结果的例子。
相关文章:
- javascript结合了数组和字典
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- jQuery UI自动完成突然停止工作
- 如何使用skip参数使用angular ui引导进行服务器端分页
- AngularJS UI路由器不能像ng路由器那样工作
- 将Firebase与Electron结合使用
- 我可以更改剑道UI网格吗's的外键值
- 结合jQuery和jetpack无限滚动
- 剑道UI内联编辑:如何在点击其他按钮时隐藏按钮
- Rails/JSON:如何将JSON用于jquery UI自动完成表单
- 停止jQuery UI滑块移动超过给定值
- 将Angular js与taglib结合使用
- 将图像上传ajax与表单提交ajax相结合
- 混合 ui-sref 和 $state.go 在 Angular ui-router 中进行状态转换
- 将 ui-router 与 ngTouch 结合使用
- Angular UI和Bootstrap UI结合在一起
- jQuery UI-可选择与可拖动相结合
- Angular UI Bootstrap日期选择器与UI. mask结合使用
- 将语义 UI 与 asp.net Web 表单结合使用
- 将 jquery-ui 自动完成与动态表单生成结合使用