2017-03-03 35 views
2

我已經創建了兩個單選按鈕用於性別,我想顯示之前選定的單選按鈕。單選按鈕沒有檢查角度2

我在模板

<div class="form-group"> 
    <label>Gender</label> 

    <div id="input-type"> 
     <label class="radio-inline"> 
      <input type="radio" formControlName="gender" [name]="'gender'" [value]="'male'"/> Male 
     </label> 
     <label class="radio-inline"> 
       <input type="radio" formControlName="gender" [name]="'gender'" [value]="'female'"/> Female 
     </label> 
    </div> 
</div> 

我加入以下代碼組件添加下面的代碼。

console.log(this.gender); // I am getting 'male' here. 
this.editProfile = new FormGroup({ 
    gender: new FormControl(this.gender || null) 
}); 

窗體的其他值正在顯示,但單選按鈕沒有被檢查。

+0

什麼屬性是'[name]'和'[value]'? – guradio

+0

單選按鈕的名稱和值,但我也試過沒有名字。 –

回答

1

你可以把它寫像

<form [formGroup]="form" (ngSubmit)="onSubmit(form.value)"> 

    <label class="radio-inline"> 
      <input type="radio" formControlName="gender" [name]="'gender'" [value]="'male'"/> Male 
     </label> 
     <label class="radio-inline"> 
       <input type="radio" formControlName="gender" [name]="'gender'" [value]="'female'"/> Female 
     </label> 
    <button type="submit" [disabled]="form.invalid">Submit</button> 

    {{form.value|json}} 
    </form> 

它應該爲你工作

查找PLUNK here

+0

謝謝,它工作正常。 –

+0

歡迎,樂意幫忙。 – Viplock

0

由於您使用的是動態表單,因此您可以省略輸入name屬性,並且由於您要設置字符串值以便輸入,所以您必須使用value="male"而不是[value]="'male'"

<div class="form-group"> 
    <label>Gender</label> 

    <div id="input-type"> 
    <label class="radio-inline"> 
     <input type="radio" formControlName="gender" value="male"/> Male 
    </label> 
    <label class="radio-inline"> 
      <input type="radio" formControlName="gender" value="female"/> Female 
    </label> 
    </div> 
</div> 
+0

我已經試過這個,但它不工作,但我沒有得到檢查 –

+0

檢查通過設置像性別字段內的性別字段的靜態值像性別:新的FormControl('男')'看看它的檢查與否。可能會出現'this.gender'值。 – ranakrunal9

1

我已經找到其他的解決辦法。我們可以使用下面的代碼

<div class="form-group"> 
    <label>Gender</label> 
     <div id="input-type"> 
      <label class="radio-inline"> 
       <input type="radio" [checked]="editProfile.value.gender == 'male'" formControlName="gender" value="male"/> Male 
      </label> 
      <label class="radio-inline"> 
       <input type="radio" [checked]="editProfile.value.gender == 'female'" formControlName="gender" value="female"/> Female 
      </label> 
     </div> 
</div>