2
我在輸入字段上使用了Bootstrap Datepicker(在這裏找到:http://mgcrea.github.io/angular-strap/#/datepicker)。默認情況下,日期選擇器允許輸入日期。如果它是有效的,那麼它設置日期。否則,它將日期設置爲當前日期。AngularJs Bootstrap日期選擇器驗證
我寫了一個使用正則表達式中的字符的日期是輸入:
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)我不認爲這些指令應該是相互矛盾的。
還有就是 'ngModel' 後失蹤逗號,缺少「變種「in var validate = function ...並在$ formaters和$ parsers中拋出異常。關於如何啓動這兩個應用程序實際上並不清楚 - 它們是否應該加載到Controller(?)中,或者如何... JSFiddle示例將值得讚賞。但是,無論如何,謝謝你提供良好的方向。 – lubosdz