ng-repeatの中にさまざまな入力を持つ一連のテーブル行があり、必要なフィールドを処理するためにフォーム検証に組み込まれたangleを使用しようとしています。 ng-repeatをサポートしている配列内の項目の1つを削除する場合を除いて、すべてがうまく動作します。ここでngRepeat内の角型バリデーション
は、私はあなたが最初のテーブルの行を削除した場合、あなたは気づくでしょう、plunkerでは私の問題
https://plnkr.co/edit/Q1qyqlSG69EXR2lTrsHk
を示す私の検証
<td ng-class="{ 'has-error' : vm.testForm.itemName{{$index}}.$invalid }">
<input type="text"
name="itemName{{$index}}"
class="form-control"
ng-model="item.name"
required />
<div class="help-block"
ng-show="vm.testForm.itemName{{$index}}.$invalid"
ng-messages="vm.testForm['itemName'+$index].$error">
<span ng-message="required">Name is required</span>
</div>
</td>
Plunkerを設定した方法です最後の行はまだ無効ですが、エラーは上記の行にアタッチされています。次に、最後の行を入力して有効にしてからもう一度空にすると、間違った行にエラーが表示されます。後続の行を削除すると、エラーが実際の無効な行からさらに移動し、テーブルにまったく表示されなくなります。
これらの入力を検証する別の方法はありますか?
アウト[この](のhttp:/ /stackoverflow.com/questions/19859959/validating-nested-form-in-angular#answer-19860312)答え。 'ng-form'はそのトリックです。 – user2718281