Изменения проверки шаблона даты в AngularJS с версии 1.3 до версии 1.4

Недавно я задал этот вопрос об изменениях в проверке шаблона RegExp, которые были введены в AngularJS v1.3. Ответ, который я получил, по-видимому, решил мою проблему, но теперь я пытаюсь применить этот подход и вижу, что в AngularJS v1.4 поведение снова отличается.

В частности, я хочу применить проверку шаблона к полю ввода даты, но RegExp проверки будет отображаться как свойство модели, а не жестко закодировано в разметке формы.

Как было предложено, я указываю имя свойства модели в атрибуте ng-pattern...

<input type="date" ng-model="myDate" name="myDate" ng-pattern="control.dateRegex" />

... и выставляя валидацию RegExp как свойство модели:

$scope.control = {
    dateRegex: /^2015-\d+-\d+$/
};

Этот JSFiddle показывает, что он правильно работает с AngularJS v1.3 и это демонстрирует, что та же реализация не работает с версией 1.4. Я не могу найти документацию, описывающую правильную реализацию для использования с v1.4.

Любые предложения, пожалуйста?


person Tim Coulter    schedule 13.07.2015    source источник
comment
@ Дэниел Хейли, спасибо. Я обновил Fiddle и отредактировал ссылку выше, чтобы отразить это.   -  person Tim Coulter    schedule 13.07.2015


Ответы (1)


Задав похожий вопрос на форуме проблем AngularJS, я узнал что это поведение характерно для проверки ввода даты. Это происходит из-за того, что свойство модели, используемое для привязки ввода даты, изменилось с объекта String на объект Date, что означает, что больше невозможно использовать регулярное выражение для его проверки.

Похоже, что команда AngularJS признала это ошибкой, и мы можем ожидать исправления в следующем выпуске. Я буду следить за проблемой и обновлять эту ветку, когда будет какой-то прогресс.

person Tim Coulter    schedule 15.07.2015