2015-06-10 3 views
2

Я мог бы вам помочь. У меня есть поле ввода с type="text" и ng-required="true". Я использую datepicker (Angular UI Bootstrap).Угловая проверка даты (форматы)

Если мой ввод пуст, someForm.someInput.$error возвращает "required":true, что хорошо. Если мой ввод заполнен "someText", someForm.someInput.$error возвращает "date":true, что странно для меня.

  1. Как это срабатывает, это делается директивой datepicker? У меня нет типа = «дата» или что-то еще. *

  2. Как я могу достичь этой даты в формате «dd.MM.yyyy»?

Если я вхожу 01.01.2015 или 01.13.2015 - это, кажется, не действует (не "date":true), но, видимо, это не так. Я предполагаю, что действующий действующий формат - "yyyy.MM.dd".

Примечание: Я также использую угловой файл локали, если это важно.

+0

Для проверки шаблона даты вы должны использовать ng-pattern = "пространство для выражения регулярных выражений". После этого вы должны иметь правильную валидацию ввода даты. –

+0

Спасибо за ваш комментарий. Я не уверен, что это ответ на вопрос, когда валидация даты может присутствовать, и я не знаю, какая часть кода вызывает это. –

+0

Кто-нибудь еще с некоторым решением? –

ответ

1

Я узнал, что datepicker использует два значения. Один для модели, один для ввода. Это работает, если вы вводите дату, выбирая ее из всплывающего окна, хотя не работает, если вводите ее в поле ввода.

Я решил эту проблему, поместив атрибут readonly в поле ввода.

0

В моем случае (RoR и AngularJS), я сохранил данные на сервере в следующий раз, когда вы получите данные с сервера, у datepicker есть {date: true} ошибка проверки.

Что я сделал, чтобы исправить это? Вместо отправки строки формата iso8601 или строки формата UTC я попытался вернуть формат миллисекунд

В следующем примере в рубине уточняется, что удалило проверку даты на угловом бутстрапе uatpat.

my_object.my_timestamp # DID NOT WORK :-(
my_object.my_timestamp.iso8601 # DID NOT WORK :-(

my_object.my_timestamp.to_f * 1000 # WORKED :-) 

Надеюсь, это поможет!