2017-07-16 39 views
0

問題:如何在此場景中獲取組件初始化時的無線電輸入值?初始化並獲取組件上的單選按鈕值

組件:

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

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

模板:

<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> 

現在,如果我試圖讓檢查輸入的值ngAfterViewChecked()這是具有"i === 0"條件等於真正的投入,我得到空在組件初始化時,它會在無線電輸入更改時返回正確的值。

+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>