2017-06-15 6 views
0

テンプレートから評価値をコンポーネントに渡す必要があります。角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] =" rating.value "' ...または、あなたが望むなら 'value =" {{rating.value}} "'。これを確認する[**デモ**](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); 
関連する問題