AngularJS 日期模式验证从 v1.3 更改为 v1.4
AngularJS Date Pattern Validation Changes from v1.3 to v1.4
我最近询问 关于 AngularJS v1.3 中引入的 RegExp 模式验证的更改。我收到的答案显然解决了我的问题,但现在我正在尝试应用该方法,我发现 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+$/
};
This JSFiddle shows it working correctly with AngularJS v1.3 and this one 表明相同的实现不适用于 v1.4。我找不到任何描述与 v1.4 一起使用的正确实现的文档。
有什么建议吗?
在 AngularJS 问题论坛上询问 a similar question 后,我了解到此行为特定于日期输入验证。它的出现是因为用于日期输入绑定的模型 属性 已从 String
更改为 Date
对象,这意味着不再可能使用 RegExp 来验证它。
AngularJS 团队似乎认为这是一个错误,我们可以期待在即将发布的版本中进行修复。我会监控问题并在有进展时更新此线程。
我最近询问
具体来说,我想将模式验证应用于日期输入字段,但验证 RegExp 将作为模型的 属性 公开,而不是硬编码到表单标记中。
按照建议,我在 ng-pattern 属性中指定模型的名称 属性 ...
<input type="date" ng-model="myDate" name="myDate" ng-pattern="control.dateRegex" />
... 并将验证 RegExp 公开为模型的 属性:
$scope.control = {
dateRegex: /^2015-\d+-\d+$/
};
This JSFiddle shows it working correctly with AngularJS v1.3 and this one 表明相同的实现不适用于 v1.4。我找不到任何描述与 v1.4 一起使用的正确实现的文档。
有什么建议吗?
在 AngularJS 问题论坛上询问 a similar question 后,我了解到此行为特定于日期输入验证。它的出现是因为用于日期输入绑定的模型 属性 已从 String
更改为 Date
对象,这意味着不再可能使用 RegExp 来验证它。
AngularJS 团队似乎认为这是一个错误,我们可以期待在即将发布的版本中进行修复。我会监控问题并在有进展时更新此线程。