2016-04-14 8 views
6

ng-repeatの中にラジオボタンのリストを表示しようとしていて、フィールドの初期値を取っていないようです私は入力のng-modelにバインドします。ng-modelをng-repeatの中に入れてng-modelを使用していません

ng-repeatに単純な配列を与えると、ボタンは初期値で適切に表示されます。ネストされたNG-repeatが絵になる場合は、各リストの最後の項目のみが値

で初期化しますが、ここに私のペンです:

https://codepen.io/alokraop/pen/JXLZBp

私は私が間違っているつもりです見当がつかない。ラジオボタンのname属性が各グループに対して一意であることを確認しています。

ヘルプを評価してください。

+0

感謝:) –

答えて

6

ここでの問題点は、角度値をattに補間することができないことです。 HTMLからattrという名前を削除すると、期待通りの結果が得られます。 下記を参照してください。

<div ng-app="sample"> 
    <div ng-controller="sampleController as sample"> 
    Single ng-repeat: 
    <div ng-repeat="queue in sample.queues">{{queue.name}} status: 
     <input type="radio" name="queue-{{$index}}" ng-model="queue.condition" value="hooked" /> hooked 
     <input type="radio" name="queue-{{$index}}" ng-model="queue.condition" value="unhooked" /> unhooked 
     <input type="radio" name="queue-{{$index}}" ng-model="queue.condition" value="partial" /> partial 
    </div> 
    <br /> 
    Nested ng-repeat: 
    <div ng-repeat="qm in sample.qms"> 
     {{qm.name}} queues: 
     <div ng-repeat="queue in qm.queues">{{queue.name}} status: 
     <input type="radio" ng-model="queue.condition" value="hooked" /> hooked 
     <input type="radio" ng-model="queue.condition" value="unhooked" /> unhooked 
     <input type="radio" ng-model="queue.condition" value="partial" /> partial 
     </div> 
    </div> 
    </div> 

</div> 

我々は、動的に名前を含めたい場合は、のような角名前ディレクティブに見て:この質問をするためのDynamic form name attribute <input type="text" name="{{ variable-name }}" /> in Angularjs

+0

それを固定ねえのおかげで、。しかし、私はそれが正しい値をリストの最後の項目に結びつけるしかないと思います。さらに、name属性はラジオボタンをグループ化するものですか?名前の属性を持たない別の項目を選択すると、ラジオボタンで以前に選択した項目のチェックを解除する方法はわかりますか?彼らは3人が1グループに入っていると推測していますか? – alokraop

+0

この場合、ラジオボタンはng-modelディレクティブによって結合されています。ユーザーが新しいラジオオプションを選択すると、ng-modelの値がそのラジオに関連付けられた値属性に変更されます。これが起こると、ngモデルはそのngモデルを共有する他のラジオボタンによって再度読み込まれ、それに応じて値が更新されます。 – dYale

+0

ああ、ネイティブhtmlイベントはボタンがグループの一部であることを知らないので、今ダイジェストサイクルで発生します。ありがとう:-) – alokraop

関連する問題