0

JSON形式のAPIを次の形式で使用しています。Angular2、Ionic2:ngModelを使用してネストされた* ngforのラジオボタンに2wayバインディングを行う方法?

enter image description here

私は質問&選択肢形式の形でこれを表示したいです。ラジオボタンを使って選択肢を表示しようとしています。しかし私のngModelは機能しません。自分の.tsファイルにngModelを使用して、選択した選択肢のオブジェクト全体にアクセスしたいとします。

はここにここに私のhtmlコード

<ion-content padding> 
<div *ngFor="let qContent of testcontents; let i = index"> 
    {{i+1}} {{qContent.questionText}} 
    <div *ngFor="let choiceObj of qContent.choice"> 
     <input name='options' type='radio' [value]='choiceObj' [(ngModel)]='choiceObj.choice' (ngModelChange)="selectChoice(choiceObj)" /> 
     <label [for]='choiceObj'>{{choiceObj.choiceText}}</label> 
    </div> 
</div> 

これは、上記のコードの出力である私のTSコード

export class Quiz implements OnInit { 
    testcontents: Array<any>=[]; 
    choiceObj:any; 

constructor(public navCtrl: NavController, public navParams: NavParams,public http:Http) {} 
    ngOnInit() 
    { 
     this.launchfunc(); 
    } 
    launchfunc() 
    { 
    this.http.post('launchtest/getTestContent',this.launchtestobj).subscribe(resp=>{ 
     this.testcontents = resp.data.questions; 
    }); 
    } 

    selectChoice($event) 
    { 
     console.log("12312341234",event); 
     console.log("obj",this.choiceObj); 
    } 

です。 enter image description here objが定義されていない理由がわかりません。 ngModelに問題があります。私はngModelをどうすればいいのか、typescriptファイルの "choiceObj"にはどのようにアクセスすればよいのか理解できません。誰か助けてください。

答えて

2

モデルはchoiceObj.choiceが選択の対象にありません。 あなたは答えとしてそれをマークしてくださいしてくださいすることができ、それが役に立った場合は、「choiceObj.choiceId」

<ion-content padding> 
<div *ngFor="let qContent of testcontents; let i = index"> 
    {{i+1}} {{qContent.questionText}} 
    <div *ngFor="let choiceObj of qContent.choice"> 
     <input name='options' type='radio' [value]='choiceObj' [(ngModel)]='choiceObj.choiceId' (ngModelChange)="selectChoice(choiceObj)" /> 
     <label [for]='choiceObj'>{{choiceObj.choiceText}}</label> 
    </div> 
</div> 
+0

と交換する必要がありますか? – Yalin

+0

ありがとうございました。出来た。あなたはこれを見ていただけますかhttps://stackoverflow.com/questions/44455814/angular2-typescript-how-to-put-the-radio-button-checked-when-in-an-array-which –

+0

私は感謝しますifあなたはそれを正しい答えとしてマークすることができます:-)。 私は今見てみましょう。 – Yalin

関連する問題