我是 AngularJS 的新手,但我已经进行了广泛的搜索,但找不到这个问题的有效答案,也许这不可能按照我的想法。
我想要的是能够组合错误条件,以便我可以在ng-messages模块中使用更通用的错误消息。这为我们节省了大量维护文本的时间,因为我们的应用程序是多语言的。在我的示例中,将 minlength、maxlength 和模式结合起来并让它引用 1 个通用消息会很棒。我让它工作的唯一方法是为每种类型提供一个单独的ng-message,然后重用对我来说似乎多余的错误文本。希望这是我缺少的东西,例如不了解何时/如何使用或||。
<form id="myFormId" name="myForm" novalidate>
<input name="sText" ng-model="someText"
type="text"
required
ng-minlength="8" minlength="8"
ng-maxlength="8" maxlength="8"
ng-pattern="/^[a-zA-Z0-9]{8,8}$/" pattern="/^[a-zA-Z0-9]{8,8}$/">
<div ng-messages="myForm.sText.$error" role="alert">
Error message:
<div ng-message="required">Required text missing</div>
<div ng-message="minlength || maxlength || pattern">Not right length or bad pattern - Why does this not work? I have also tried using comma , instead of || </div>
<div ng-message="minlength">Too short - this does work but does not change even if this is removed</div>
</div>
</form>
我创建了这个简单的 Plunk来说明我正在尝试做的事情:
编辑 1
我确实意识到我可以使用单个正则表达式模式表达式,但上述验证严格用于重现问题并显示示例。我有其他的验证我想结合起来,不能用单一的模式来表达。