【问题标题】:Access ng-pattern in error message在错误消息中访问 ng-pattern
【发布时间】:2016-01-20 14:09:18
【问题描述】:

我有一个属性列表的 ng-repeat,并希望显示每个输入的错误消息。对于模式错误,我还想显示它必须匹配的特定正则表达式。

我能以某种方式访问​​输入的模式吗?我知道我可以添加一个包含正则表达式的属性,但我想知道是否有某种角度方式。

(这是一个过于简单的例子,不同属性的正则表达式可能不同)

<form name="form">
    <div data-ng-repeat="(attributeName, attributeMetaData) in configuration.metaData">

        <input data-ng-model="configuration[attributeName]" type="text" name="{{attributeName}}" data-ng-pattern="/^[0-9][0-9]:[0-9][0-9]$/">

        <span data-ng-show="form[attributeName].$error.pattern && form[attributeName].$dirty">
            Please check your input format [pattern should go here]
        </span>   
    </div>
</form>

jsFiddle:http://jsfiddle.net/lisapfisterer/ndu2g0ev/

【问题讨论】:

  • 您想要显示类似 HH:MM 的内容还是您在 data-mg-pattern 中设置的实际正则表达式模式?
  • 正则表达式模式会很好。它适用于相当技术性的受众,应该保持高度通用性。
  • 在这种情况下,您最好将该模式存储在范围变量中并在错误消息中显示它吗? $scope.timeRegexPattern = '/^[0-9][0-9]:[0-9][0-9]$/'
  • 检查this demo - 可以吗?或this one.
  • 我不知道你使用的是什么数据库,但你可以有选择地将模型字段保存到,比如 mongo。如果这不适用于您的情况,那么我想您最好的选择是拥有一个仅包含正则表达式的模型。

标签: javascript angularjs regex


【解决方案1】:

基于您不能更改模型的限制,我想您最好的选择是拥有一个仅包含正则表达式的单独模型

【讨论】:

    猜你喜欢
    • 2018-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多