2016-10-11 11 views
0

私はラジオボタンで時を過ごしています。良い火曜日を。角型ラジオボタン複数のフォーム

私は複数の名前、各名前のフォーム、名前を「プライマリ名」として選択する機能を持っています。各名前は個別に編集して送信することができます。

updatePrimary()関数では、正しい名前のprimary_name値を1に設定し、残りの値を0に設定しています。しかし、名前を「プライマリ」(1)として選択すると、他のラジオボタンはラジオボタンの選択を解除していません(とにかく他のラジオボタンは1つだけ選択する必要があります)。なぜときに私、私は、それをチェックするための条件(== 1)を与えて、ボタンにname.primary_nameを結合よどこ

<ng-include src="'app/names/__edit.html'" ng-repeat="name in names track by $index"></ng-include> 

<!-- __edit.html --> 
<form name="names[$index]"> 
    <input name="primary_name" class="form-control" type="radio" ng-click="updatePrimary($index)" ng-model="name.primary_name" ng-value="name.primary_name" ng-checked="<% name.primary_name == 1 %>"/> 
</form> 

私は理解していないことである。このよう

モデルはアップデートされていないディスプレイですか?繰り返すと、モデルでは正しいですが、これはUI /バインディングの問題です。

メモ:フォームをダーティにすると有効になります。保存するボタンがあります。ラジオボタンを選択しても、これは発生しません。

<button class="name-save" ng-disabled="names[$index].$pristine" ng-click="save($index)">Save</button> 
+0

ラジオボタンが別のフォームにある場合は、別の選択肢でラジオボタンをリセットすることはできません。これらはすべて1つの形式にする必要があります –

答えて

0

これを試してください:ボタンのようなある問題を解決する必要があり、無線入力フィールドに動的IDを使用

<ng-include src="'app/names/__edit.html'" ng-repeat="name in names track by $index"></ng-include> 

<!-- __edit.html --> 
<form name="names[$index]"> 
<input id="radio_{{$index}}" name="primary_name" class="form-control" type="radio" ng-click="updatePrimary($index)" ng-model="name.primary_name" ng-value="name.primary_name" ng-checked="<% name.primary_name == 1 %>"/> 

ng-repeatはフォームでは機能しません。フォームは繰り返されません。フォームを繰り返すには、ng-formを使用する必要があります。

関連する問題