2017-06-15 55 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);