ng-pattern でフォーム入力ディレクティブを使用する。ディレクティブの ID が文字列の場合は機能しますが (つまり、エラーが表示されます)、ID が式の場合は失敗します (つまり、エラーは表示されません)。擬似コード:
作品
<form name="myForm" role="form" ng-submit="customer.submit()">
<form-input id="foo" ng-pattern="/^[0-9]+$/"></form-input>
</form>
<span ng-show="myForm.foo.$error.pattern" class="ng-hide">Not valid number!</span>
機能しません (myVar = "foo")
<form name="myForm" role="form" ng-submit="customer.submit()">
<form-input id="{{myVar}}" ng-pattern="/^[0-9]+$/"></form-input>
</form>
<span ng-show="myForm.foo.$error.pattern" class="ng-hide">Not valid number!</span>
Chrome Inspected HTML (動作する/動作しない場合とまったく同じ)
<input type="text" id="foo" name="foo" ng-pattern="/^[0-9]+$/" class="ng-valid ng-valid-pattern">
<span ng-show="myForm.foo.$error.pattern" class="ng-hide">Not valid number!</span>
これは、すべてが配線されたときに式 ID が定義されていないためであると仮定しますが、修正方法がわかりません。前もって感謝します!