AngularJS を同じタイプの入力ラジオ フィールドの繰り返しセットにしようとしています。
例:
<form>
<ul id="group1">
<li><input type='radio' name='optionRadio'></li>
<li><input type='radio' name='optionRadio'></li>
</ul>
<ul id="group2">
<li><input type='radio' name='optionRadio'></li>
<li><input type='radio' name='optionRadio'></li>
</ul>
</form>
私が持っているAngularJS:
<form name='testForm'>
<ul ng-repeat='field in fields' ng-form='subForm'>
<li><input type='radio' ng-model='subForm.optionRadio' name='optionRadio'>field.name</li>
</ul>
</form>
問題は、ラジオ ボタンをクリックすると、別のグループのラジオの選択が解除されることです。
問題は name = optionRadio であることはわかっていますが、フォーム testForm から $invalid を利用しようとしています。
name='optionRadio' を削除すると、エラーのためにどのフォーム項目を強調表示する必要があるか分からなくなります。
別のフォームタグも試してみましたが、ng-repeat とフォームタグに問題がありました。
また、 nameに$indexを追加しようとしましたが、フォーム オブジェクトは文字通り値を受け取ります。
これを適切に行う方法についての提案は大歓迎です。
編集: http://jsfiddle.net/HB7LU/207/
私はjsfiddleを作りました。私は解決策を見つけましたが、それは機能しますが、フォーム検証を利用しません。
モデルに値があるかどうかを確認することで、エラー メッセージが表示された場合と同じ結果を得ることができます。もう 1 つのオプションは、検証用のカスタム ディレクティブを記述してから、探している特定のエラーのサブフォームを確認することです。
例:
<input radioCheck type='radio' name='optionRadio'/>
<span ng-show='subForm.$error.radioCheck'>Radio check error</span>