【发布时间】:2015-03-26 02:33:29
【问题描述】:
我在输入字段上使用 Bootstrap Datepicker(可在此处找到:http://mgcrea.github.io/angular-strap/#/datepicker)。默认情况下,日期选择器允许输入日期。如果有效,则设置日期。否则,它将日期设置为当前日期。
我写了一个指令,它使用正则表达式来只输入日期的字符。:
maskModelCtrl.$parsers.push(function(inputValue) {
var val = maskRenderLogic(inputValue, mask, maxVal);
setAndRender(maskModelCtrl, val);
return maskReturnLogic(val);
});
我写了一个指令来标准化带有模板的日期选择器的输入字段:
angular.module('form.validation').directive('dateMask', ['$parse', function($parse) {
return {
restrict: 'E',
scope: {
date: '='
},
template: '<input ng-model="date" regex-mask="[^0-9 /]" max-length="10" bs-datepicker data-date-format="mm/dd/yyyy" placeholder="mm/dd/yyyy" >',
replace: true
};
}]);
问题是,日期选择器会将任何键盘输入或日期选择转换为当前日期。 (见plnkr:http://plnkr.co/edit/oCZnq0UOmaxC83Rv7YSs?p=preview)我不认为这些指令应该互相不兼容。
【问题讨论】:
标签: angularjs datepicker angularjs-directive