AngularJS V1.0.8で動作するすばらしい日付ドロップダウンがあり、V1.4.2を使用して実行しようとしていますが、ボールを再生したくないようです。AngularJSバージョン1.0.8から1.4.2への変換の問題
何が問題になっているようですか?私はバージョンの変更を調査したが問題を見ることはできない。
私はあなたが1.0.8を使って作業しているのを見ることができますし、5行目と8行目のバージョンを1.4.2に変更すると動作しません。
フィールドが細かいですが、1.4.2
に問題は何をすることができません31/02/2000などのような日付に無効になる必要がありますか?
https://plnkr.co/edit/5ckBkzN6xYEvJvyoO0Ax?p=preview
angular.module('dateApp', []);
angular.module('dateApp').
directive('dateTypeMulti', function() {
return {
require: 'ngModel',
link: function (scope, element, attrs, ngModel) {
ngModel.$render = function() {
angular.extend(scope.$eval(attrs.dateTypeMulti), ngModel.$viewValue);
};
scope.$watch(attrs.dateTypeMulti, function (viewValue) {
ngModel.$setViewValue(viewValue);
}, true);
ngModel.$formatters.push(function (modelValue) {
if (!modelValue) return;
var parts = String(modelValue).split('/');
return {
year: parts[0],
month: parts[1],
day: parts[2]
};
});
ngModel.$parsers.unshift(function (viewValue) {
var isValid = true,
modelValue = '',
date;
if (viewValue) {
date = new Date(viewValue.year, viewValue.month - 1, viewValue.day);
modelValue = [viewValue.year, viewValue.month, viewValue.day].join('/');
if ('//' === modelValue) {
modelValue = '';
} else if (
date.getFullYear() != viewValue.year ||
date.getMonth() != viewValue.month - 1 ||
date.getDate() != viewValue.day) {
isValid = false;
}
}
ngModel.$setValidity('dateTypeMulti', isValid);
return isValid ? modelValue : undefined;
});
}
};
})
おかげ
これはあなたを助けるましたか? – tasseKATT
ありがとうございます – wwwredback