2

我最近问了这个关于 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+$/
};

这个 JSFiddle展示了它与 AngularJS v1.3 一起正常工作,而这个展示了相同的实现不适用于 v1.4。我找不到任何描述与 v1.4 一起使用的正确实现的文档。

请问有什么建议吗?

4

1 回答 1

1

在 AngularJS 问题论坛上问了一个类似的问题后,我了解到这种行为特定于日期输入验证。它的出现是因为用于日期输入绑定的模型属性已从 a 更改StringDateobject,这意味着不再可能使用 RegExp 来验证它。

AngularJS 团队似乎认识到这是一个错误,我们可以期待在即将发布的版本中进行修复。我会监控这个问题并在有一些进展时更新这个线程。

于 2015-07-15T13:49:34.030 回答