ng-repeatを使用して複数のラジオボタンを生成していて、そのうちの1つが選択されたときにモデルを更新しようとしています。これは動作していないようです。AngularJS - ng-repeatによって生成されたラジオボタンの選択時にモデルが更新されない
ng-repeatによって生成されるのとは対照的に、ラジオ入力がハードコードされている場合、同じマークアップがうまく動作します。
これは動作します:
<input type="radio" ng-model="lunch" value="chicken" name="lunch">
<input type="radio" ng-model="lunch" value="beef" name="lunch">
<input type="radio" ng-model="lunch" value="fish" name="lunch">
{{lunch}}
これにはない:
<input type="radio" ng-model="lunch" ng-repeat="m in meat" value="m" name="lunch">
{{lunch}}
は両方ここに示すjsfiddleを参照してください:http://jsfiddle.net/mark_up/A2qCS/1/
任意の助けいただければ幸いです。
おかげ
'$ parent'を使う代わりに、コントローラのオブジェクトプロパティを使うことができます:' $ scope.selection = {lunch: 'chicken'}; '、 HTML: ' {{selection.lunch}} ' –
ありがとう@MarkRajcok! '$ scope.selection = {lunch: 'chicken'};を私を助けたコントローラに入れていました。そして、htmlラジオボタンから 'ng-checked =" true "を取り除くこともできました。コントローラーの設定で正しいラジオボタンが自動的に/プログラムによって選択されるからです。 –
@ MarkRajcok、$ parentの使用を避けるためにオブジェクトプロパティを使用する根本的な理由は何ですか? –