2017-09-18 16 views
0

を働いていません。私のコードの下に。角度 - ラジオボタンのリストは、私は、フォーム内のラジオボタンのリストを使用して問題を抱えている

  1. 他のすべてのラジオボタンがあまりにも
  2. を選択します:

    perito: FormGroup; 
    ngOnInit() { 
        this.perito = new FormGroup({ 
         idPerito: new FormControl() 
        }); 
    } 
    onSelect() { 
        console.log(this.perito.value); 
    } 
    


    ビュー

    <form novalidate (ngSubmit)="onSubmit()" [formGroup]="perito"> 
        <div class="form-group row"> 
         <table class="table"> 
          <thead></thead> 
          <tbody> 
           <tr *ngFor="let p of periti"> 
            <td>{{p.nome}} {{p.cognome}}</td> 
            <td>{{p.indirizzo}} {{p.civico}} - {{p.cap}} 
             {{p.comune}} 
            </td> 
            <td><input formControlName="idPerito" type="radio" [value]="p.id" (change)="onSelect(p.id)"></td> 
           </tr> 
          </tbody> 
         </table> 
        </div> 
    </form> 
    

    コントローラは、問題は、私は1つのラジオボタンを選択したときにということですフォームoオブジェクトが定義されていません

ラジオボタンのリストを管理する正しい方法は何ですか?ありがとう。彼らは主キーであるため、

this.peritiSrv.getPeriti() 
    .then(res => { 
     this.periti = res; 
    }) 
    .catch(); 

とにかく、2つのperitiオブジェクトに対して同じIDを持って起こることができません: -

EDITは、これは私が私のperiti配列を移入する方法です。

+0

あなたperitiのアレイを提供することができますか?たぶんどこかで、あなたはラジオボタンのためのあなたの値が同じであれば、これが起こる可能性があり、同じids.Becauseを持っています。 – lingthe

+0

私の編集を見て、ありがとう。 – esseara

+0

私はその配列の例を挙げるつもりでした。 – lingthe

答えて

0

あなたのフォームオブジェクトは、おそらくコンポーネントが作成された時点でインスタンス化されていないため(construct)、undefinedです。問題が解決しない場合は参照してください

コントローラ

perito: FormGroup; 
constructor() { 
    this.perito = new FormGroup({ 
     idPerito: new FormControl('') 
    }); // empty string passed in as the initial value of the FormControl instead of no argument 
} 
// no ngOnInit() implementation 
onSelect() { 
    console.log(this.perito.value); 
} 

ngOnInit()フックからそのコンポーネントのconstructorのボディにformGroup作成線を移動してみてください。

+0

問題がまだありますそこ。私は両方のラジオボタンので、渡された値であるかを知らないコントローラを選択しているため、オブジェクトが定義されていないこと(私が間違っている可能性が)と思います。 – esseara

関連する問題