AngularJS 日期验证(格式)

AngularJS date validation (formats)

我需要一些帮助。我有 type="text"ng-required="true" 的输入字段。我正在使用 datepicker (Angular UI Bootstrap).

如果我的输入为空,someForm.someInput.$error returns "required":true,没关系。 如果我输入的是"someText"someForm.someInput.$error returns "date":true,这对我来说很奇怪。

  1. 这个是怎么触发的,是directive datepicker做的吗?我没有 type="date" 什么的。*

  2. 我怎样才能使 "dd.MM.yyyy" 格式的日期有效?

如果我输入 01.01.201501.13.2015 - 这似乎是有效的(没有 "date":true)但显然不是。 我猜当前的有效格式是 "yyyy.MM.dd".

注意:如果这很重要,我也在使用 angular 语言环境文件。

我发现日期选择器使用了两个值。一个用于模型,一个用于输入。如果您通过从弹出窗口中选择日期来输入日期,则此方法有效,但如果在输入字段中键入日期则无效。

我已经通过将只读属性添加到输入字段解决了这个问题。

在我的例子中(RoR 和 AngularJS),我正在将数据保存到服务器中,当您下次从服务器获取数据时,日期选择器有 {date: true} 验证错误。

我做了什么来解决这个问题? 我没有发送 iso8601 格式字符串或 UTC 格式字符串,而是尝试返回毫秒格式

ruby 中的以下示例将阐明在 angular ui bootstrap datetimePicker.

上删除日期验证的原因
my_object.my_timestamp # DID NOT WORK :-(
my_object.my_timestamp.iso8601 # DID NOT WORK :-(

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

希望对您有所帮助!