Я хотел бы создать директиву, которая проверяет значение ввода на дату, указанную в html, и если она имеет значение null, то переустановите ее на текущую дату. У меня нет проблем с этой проверкой с ng-change.Угловая директива для проверки даты
HTML код:
<input type="date" class="form-control" id="birthDate"
ng-model="vm.bDate" ng-change="vm.dateValid(vm.bDate)">
И код в контроллере:
function dateValid(date) {
vm.bDate = date || new Date();
}
Этот код работать прекрасно, но так как у меня есть много полей даты в моем приложении я хотел бы сделать, получить тот же результат с директивой.
Так я реализовать директиву:
$element.on('blur', function() {
var pDate = Date.parse($ctrl.$modelValue);
if (isNaN(pDate) === true) {
$ctrl.$setViewValue(new Date());
$ctrl.$render();
}
});
И в HTML:
<input type="date" class="form-control" id="birthDate" valid-date=""
ng-model="vm.bDate">
И когда дата равна нуль, как, когда я стираю год, например, я получаю сообщение об ошибке в консоль:
Указанное значение «Sun Sep 18 2016 21:41:34 GMT + 0300 (Jerusalem Daylight Time)» не соответствует требуемый формат, «yyyy-MM-dd».
Каков подходящий способ сброса полей даты?
Thanx
попробовать '$ Ctrl $ setViewValue;'. – Claies
Попробуйте это, и это не сбрасывает поле. Ошибка в консоли. – user384496
Он сбросил его до какой-либо даты, например: «mm/dd/yyy». Я хотел бы сбросить поля до текущей даты. – user384496