私はAngularJSを初めて使用しますが、広範囲に検索しましたが、この質問に対する有効な答えが見つかりませんでした。おそらく、私が考えている方法では不可能です。
私が望むのは、エラー条件を組み合わせて、より一般的なエラー メッセージをng-messagesモジュールで使用できるようにすることです。私たちのアプリケーションは多言語であるため、これにより、テキストを維持する時間を大幅に節約できます。私の例では、minlength、maxlength、および pattern を組み合わせて、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
単一の正規表現パターン表現を使用できることは認識していますが、上記の検証は厳密に問題を再現し、例を示すためのものです。単一のパターンでは表現できなかった、組み合わせたい他の検証があります。