2017-11-28 21 views
0

次のDOMのスクリーンショットでは、ラジオ入力があります。選択された値はAngular [(ngModel)]プロパティによって決定されます。ここでは、モデルプロパティがこの入力のvalueプロパティと一致していることがわかります。その結果、checkedと判断されました。ラジオボタンのチェックされたプロパティはどのように角度で設定されていますか?

しかし、この正確なHTMLシナリオが以前私に起こっていましたが、Angularはそれをチェックして処理したように見えましたが、最近の変更後には、checkedプロパティは実際にtrueとして返されません。値を選択すると、すべてが正常に機能しますが、HTMLに反映されていても登録されていない初期設定です。

checkedプロパティは実際に角度によってどのように決定されますか? ngModelの値を十分に設定していませんか?私はRadioControlValueAccessorを発見したドキュメントを通じていくつかの簡単なスキャンを行った後

Browser tool screenshot of DOM of Input/Label element

答えて

0

。 Angularのように見えます。

ラジオボタンとドロップダウンには次のメソッドを使用しています。今私が内蔵されてRadioControlValueAccessorを試すように誘惑しておりますが。

<input #radioButton type="radio" (change)="processChanges(#radioButton.value)">

これは変化に値をつかみ、あなたがフォームの値を更新することができ、処理のためにコンポーネントに送信します。

+0

うーん、後者の方法は私の主な問題である、最初にそれを設定するために動作するかではありません。それは良い変化を検出するようです。 – MattTreichelYeah

0

これは少し逸脱ですが、[(ngModel)]を削除し、checkedclickというバインディングを使用して、ラジオ/モデル接続を次の手動で実装しました。

は以前、selectedAction[(ngModel])に割り当てられた値だったが、今actionIsSelected(action)は、コントローラで事前に初期化selectedActionとの等価性のチェックを行っている、そしてそれは、クリックイベントに再割り当てされます。

<input [id]="'action'+action.id" class="accessible" type="radio" required name="action" [value]="action.id" [checked]="actionIsSelected(action.id) ? 'true' : null" (click)="selectedAction = action.id">

関連する問題