2017-09-26 56 views
0

我想在ngOninit期間基於某些輸入設置所選的單選按鈕。我想使用雙向數據綁定。Angular 4:單選按鈕:已設置(使用雙向數據綁定)

如何解決這個問題?本(以及類似的嘗試)不起作用:

<div class="form-group"> 
    <div class="col-xs-3"><label>Checker</label></div> 
    <div class="col-xs-9"> 
     <label class="radio-inline"><input type="radio" [(ngModel)]="checker" name="checker" value="0" [checked]="checker==0">Nee</label> 
     <label class="radio-inline"><input type="radio" [(ngModel)]="checker" name="checker" value="1" [checked]="checker==1">Akkoord</label> 
     <label class="radio-inline"><input type="radio" [(ngModel)]="checker" name="checker" value="2" [checked]="checker==2">Geen</label> 
    </div> 
    </div> 
</div 
+2

這些'[checked] =「checker == 0」'是無用的。單選按鈕的值是字符串,而不是數字。 http://plnkr.co/edit/TQJz0GD4tVEGfOajhjJw?p=preview –

+0

@JBNizet - 謝謝!你能把這個文本也放在答案中嗎?然後我會標記它用+1解決。 – tjm1706

回答

2

值屬性包含一個字符串(值=「0」等於[值] =「‘0’」),它看起來像檢查器變量包含一個數字,如果我們看看RadioControlValueAccessor中的writeValue方法,我們發現Angular使用與===運算符的嚴格比較。

所以,要解決這個問題,我們必須添加如下括號:[value] =「0」。在這種情況下,value屬性將包含一個數字,如果兩個變量包含相同的值,則測試檢查器===值將爲true。

此外,檢查的綁定應該被刪除。