0

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 が定義されていないためであると仮定しますが、修正方法がわかりません。前もって感謝します!

4

1 に答える 1

0

正確には、検証用のモデル、ng-modelディレクティブが必要です。がng-model追加されると、すべてが機能します。

<form name="myForm" role="form" >
    <input name="foo" id="{{myVar}}" ng-pattern="/^[0-9]+$/" ng-model="modelVar" />
</form>

jsFiddleを参照してください

于 2015-01-16T08:29:22.860 に答える