2017-07-16 28 views
0

質問:このシナリオでコンポーネントの初期化時にラジオ入力の値を取得するにはどうすればよいですか?コンポーネントのラジオボタンの値を初期化して取得する

コンポーネント:

colors = ['red', 'blue']; 
selectedColor: FormControl; 

ngOnInit() { 
    this.selectedColor = new FormControl(); 
} 
ngAfterViewChecked() { 
    console.log(this.selectedColor.value) // return null on component initialazation 
} 

テンプレート:私はtrueに等しい"i === 0"条件を持って入力されるngAfterViewChecked()でチェック入力の値を取得しようとする場合

<ng-container *ngFor="let c of colors, let i = index"> 
    <input 
    [formControl]="selectedColor" 
    type="radio" 
    name="group" 
    [id]="c" 
    [value]="c" 
    [checked]= "i === 0"> 
    <label attr.for="{{c}}">{{c}}</label> 
</ng-container> 

は今、私はnullを取得コンポーネントの初期化ではなく、無線入力の変更時に正しい値を返します。

+0

私はここのユースケースについて考えています。 ngModelを使用しない理由 – Alex

+0

同じ仕事をしても違いはありませんが、両方の状況で最初にコンポーネントからチェックされたラジオ入力の初期値を取得する必要があります、私がしようとしているのは反対方向です、チェックラジオの価値を取得したいテンプレートからコンポーネントへ – Sajad

答えて

0
<input 
    type="checkbox" 
    class="form-control" 
    id="'someRandomId'" 
    name="'someRandomId'" 
    [ngModel]="value" 
    (ngModelChange)="changeValue()"> 
    <label [attr.for]="'someRandomId'"><span *ngIf="name">{{name}}</span></label> 
関連する問題