好的我已經想通了。問題在於新的Date([dateString])方法,該方法只取某些值。我已經編輯UI的自舉TPLS-0.6.0.js開始行1148正如你所看到的,存在有一個TODO由角UI團隊;-)
// TODO: reverse from dateFilter string to Date object
function parseDate(viewValue) {
if (!viewValue) {
ngModel.$setValidity('date', true);
return null;
} else if (angular.isDate(viewValue)) {
ngModel.$setValidity('date', true);
return viewValue;
} else if (angular.isString(viewValue)) {
var date = new Date(viewValue);
if (isNaN(date)) {
// If the date is inputted in the European dd.mm.yyyy format, it will be invalid
// This flips the month and the day around
var dLastPos = dateFormat.lastIndexOf('d');
var mPos = dateFormat.indexOf('M');
var dSep, newViewValue;
if(mPos>dLastPos){
dSep = dateFormat.substr(mPos-dLastPos,1);
newViewValue = viewValue.split(dSep);
if(typeof newViewValue=='object'){
newViewValue=newViewValue[1]+dSep+newViewValue[0]+dSep+newViewValue[2];
}
}
date = new Date(newViewValue);
if (isNaN(date)) {
ngModel.$setValidity('date', false);
return undefined;
} else {
ngModel.$setValidity('date', true);
return date;
}
} else {
ngModel.$setValidity('date', true);
return date;
}
} else {
ngModel.$setValidity('date', false);
return undefined;
}
}
這似乎是在角UI日期選擇器中的錯誤,而不是你的誤用。 – lort