2017-03-20 25 views
0
here is the quiz.component.html file. 

オプションの値はサービスに由来します。 私はここにチェックボックスを使用してユーザーの応答を保存したいと思います。親切に私を助けてくれますか?ここで角度2でchechkbox応答を取得する方法は?

<html> 
<div class="jumbotron"> 
<div class="container"> 
    <div class="page-header"> 
     <h1>Quiz </h1> 
      <h4> Solve Questions Here</h4> 
    </div> 
     <div *ngFor="let question of questions; let i = index"> 

       <div class="panel panel-info"> 
         <div class="panel-heading"> 
           <h3 class="panel-title">{{question.category}} Quiz</h3> 
         </div> 
         <div class="panel-body"> 
           <p>  
            <span> {{i+1}}.</span> &nbsp; {{question.ques}} 
           </p> 
      <form [(ngSubmit)]=saveResponse() >      
      <ol type="a"> 
       <li> <input type="checkbox" #op1 value={{question.op1}} >&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;{{question.op1}}</li> 
       <li><input type="checkbox" #op2 value={{question.op2}} >&nbsp; &nbsp;&nbsp; &nbsp;{{question.op2}}</li> 
       <li><input type="checkbox" #op3 value={{question.op3}} >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{question.op3}}</li> 
       <li><input type="checkbox" #op4 value={{question.op4}} >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{question.op4}}</li> 
      </ol> 

      <ul class="pager"> 
        <li><button type="button"> Prev</button></li> 
        <li><button type="button" > Save </button></li> 
        <li><button type="button" > Next</button></li> 
      </ul> 
     </form> 
     </div> 
     <br> 
     <br> 

     </div> 

    </div> 
</div> 
</div> 
</html> 

はquiz.component.tsファイルです... ここで私は、チェックボックスがチェックされている場合、正しく値を取得することができ、チェックボックスの値を取るではなく、機能を構築しようとしています。

import { Component, OnInit } from '@angular/core'; 
    import { QuizService } from '../../services/quiz.service' 
    import { ActivatedRoute,Router } from '@angular/router'; 
    import 'rxjs/add/operator/switchMap'; 
    @Component({ 
     selector: 'quiz', 
     templateUrl: 'quiz.component.html', 
    }) 

    export class QuizComponent implements OnInit { 
     questions: String[]; 
    // submitChoices:{} 
    // optValue:String[]; 

    // pager = { 
    //  index: 0, 
    //  size: 1, 
    //  count: 1 
    // }; 

     constructor(private _quizService: QuizService,private route:ActivatedRoute) { 

     } 

     ngOnInit() { 
     // this._quizService.getQues().subscribe(ques => { 
     // this.questions = ques; 
     // // console.log(ques); 
     // }); 

    this.route.params.switchMap((params) => this._quizService.getQuesByCategory(params['quizType'])).subscribe(q => { 
     this.questions= q; 
    }); 

     } 


    // get filteredQuestions(){ 
    // return (this.questions) ? 
    // this.questions.slice(this.pager.index,this.pager.index+this.pager.size):[]; 
    // } 



    // getChoices(value:any,event){ 

    // // if(event.target.checked==true) 
    // // { 
    // // this.optValue.push(value); 
    // // } 
    // // console.log(this.optValue); 
    // } 
    } 

答えて

1

最も簡単な方法は、通常、双方向の入力要素とモデルの状態との間の結合についてngModel

<input type="checkbox" [(ngModel)]="question.op1" name="op1" 

を使用することです。

関連する問題