2016-07-18 11 views
0

他の<div>要素内にネストされた入力フィールドがあり、その入力フィールドでngMessagesを使用しようとしていますが、正しく検証することができません。ngMessagesがネストされた入力で正しく機能しない

<div class="form-group" ng-model="object.idnumber" ng-hide="condition.userObjectsHidden"> 
    <label class="form-control-label col-lg-12">ID Number</label> 
    <div class="col-lg-12"> 
    <input type="text" name="idnumber" placeholder="111001111" 
     ng-model="user.idnumber" 
     ng-pattern="idpattern" 
     class="form-control input-lg" 
     required="required"></input> 
     <div ng-messages="idnumber.$error" ng-if="idnumber.$dirty"> 
      <p ng-message="pattern">You are wrong!</p> 
     </div> 
    </div> 
</div> 

私は<div ng-messages...>タグがある場合、それは機能性の面で重要かどうかわからないんだけど、私も同じ結果と、この要素の外に完全にそれを持っ試してみました。 AngularとngMessagesが正しく理解されていれば、は、nameの割り当てを介してドットウォークすることにより、この場合は$errorという指示にng-messagesを割り当てる必要があります。私が知る限り、idnumber.$errorでこれを行いましたが、公正であるように、私はkiosk-form.uin.$errorを使ってより広範なドットウォークを試みました。ここでkiosk-formはフォーム全体の名前です。

私はng-message="pattern"ng-message="required"の両方を試しました。また、わかりやすくするために、idpatternはJavascriptファイル内で正規表現の文字列として定義されています。これは正しく定義されています。

答えて

1

が働いkioskForm、その後ng-messages ="kioskForm.idnumber.$error"

+0

として、フォームの名前を変更します!ありがとう!どうして綴り方にかかわらず、 'kioskForm'を使う必要があるのはなぜですか? 'idnumber'は完全にユニークです。他のどこにでもネストされた別の「idnumber」はありません。したがって、私のロジックでは、 'idnumber。$ error'を使うだけで、その名前の既存の要素に自動的にマッピングされます。 – UnworthyToast

+1

これは知っておいてよかったですが、Angularは 'kioskForm。$ error'のようにフォーム名を持つすべてのフォームのエラーオブジェクトを保持します。 –

+0

ああ、フォームに結びついています!それは大いに役立ちます。再度、感謝します! – UnworthyToast

関連する問題