2017-06-15 48 views
0

我需要將評分值從我的模板傳遞到我的組件。我現在把它當作參數傳遞給方法的成分,像這樣:Angular 2:無法使formGroup使用單選按鈕

<form [formGroup]="ratingForm"> 
       <div *ngFor="let rating of ratings" class="radio"> 
        <input type="radio" name="rating" value="rating.value" 
         (change)="filterByRating(rating.value)">       
         {{rating.title}} 
        <br> 
       </div> 
      </form> 

組件:

filterByRating(rating) { 

} 

這工作,但我寧願不傳遞值作爲參數。我嘗試使用[formControl]和formControlName沒有成功。我發現的例子是使用硬編碼的值,但這對我不起作用。有任何想法嗎?

+0

「*我試着用[formControl]和formControlName沒有成功」 * ...它應該工作,如果你已經在'value'使用屬性綁定,這樣:'[value] =「rating.value」'...或者,如果您願意:'value =「{{rating.value}}」'。檢查這個[** demo **](http://plnkr.co/edit/hRadELy3xymPNPaNpU1W?p=info)。 – developer033

回答

1

推薦推薦速遞該應用程序可能對您有幫助。您應該在視圖中使用formGroup中的@ angular/forms形式的formControlName。

<form [formGroup]="ratingForm">  
<div class="radio" *ngFor="let rating of ratings"> 
     <label> 
     <input 
      type="radio" 
      formControlName="rating" 
      [value]="rating.value">{{ rating.title }} 
     </label> 
</div> 
</form> 

在您的組件:

ngOnInit() { 
    this.ratingForm = new FormGroup({ 
    'rating': new FormControl('ratingName') 
     .... something like this 

    }); 
} 

// This gives you the value of the rating selected from view 
console.log(this.ratingForm.value.rating);