2017-07-16 3 views
0

Frage: Wie kann ich Wert von Radio-Input auf die Initialisierung von Komponenten in diesem Szenario erhalten?initialisieren und erhalten einen Radiobutton Wert auf Komponente

Komponente:

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

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

Vorlage:

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

Nun, wenn ich versuche Wert von aufgegebenem Eingang in ngAfterViewChecked() zu erhalten, welche die Eingabe, die einen "i === 0" Zustand gleich wahr ist, bekomme ich null Bei der Komponenteninitialisierung wird jedoch bei Änderungen am Funkeingang der korrekte Wert zurückgegeben.

+0

Ich denke über den Usecase hier nach. Ein Grund, ngModel nicht zu verwenden? – Alex

+0

Es gibt keinen Unterschied, beide machen den gleichen Job, aber in beiden Fällen müssen sie den Anfangswert der überprüften Radioeingabe von der Komponente zuerst bekommen, was ich versuche, ist in der entgegengesetzten Richtung, ich will den Wert des überprüften Radios von bekommen Vorlage zur Komponente – Sajad

Antwort

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