1

I am working on Angular checkbox and need to read value either given ng-true-value / ng-false-value or boolean value not sure what I am missing from code. I am reading event but not sure which value to read??

template

<div>

 <input 
    type="checkbox" 
    name="questionAnswerState" 
    ng-model="check"
    ng-true-value = "answerProvided"
    ng-false-value="questionAnswerNotProvided" 
    (change)="isAnswerProvided($event, check)"
    /> Answer Provided?

component

 isAnswerProvided(event: any, check:any)
  {
    console.log("question answer not provided responseId:: ",this.responseId, " questionId::",this.questionId, "  check::", check );
    console.log(event);
  }
Sangwin Gawande
  • 7,658
  • 8
  • 48
  • 66
K.Z
  • 5,201
  • 25
  • 104
  • 240

1 Answers1

2

If you're using Angular 2> you should use the checked attribute for using one way binding, that the UI will only read the value of check. Using this method you would have to update the check value in your component.

 <input 
    type="checkbox" 
    name="questionAnswerState" 
    [checked]="check"
    (change)="isAnswerProvided($event, check)"
    /> Answer Provided?

or if you're after two way binding, where the state is controlled completely by the UI you can use ngModel like this:

 <input 
    type="checkbox" 
    name="questionAnswerState" 
    [(ngModel)]="check"
    (change)="isAnswerProvided($event, check)"
    /> Answer Provided?
Malcor
  • 2,667
  • 21
  • 29
  • 1
    [checked]="check" return undefinded when I console.log in component – K.Z May 24 '18 at 09:40
  • is `check` defined in your component. If not, just stick with the two way binding method of using `ngModel` or add `check: boolean` to your component – Malcor May 24 '18 at 09:42
  • [(ngModel)]="check" worked, but still how to read value from $event for checkbox?? – K.Z May 24 '18 at 09:51
  • You don't need to read the value from the checkbox, your model is `check`, you only need to look at the value for `check` now. – Malcor May 24 '18 at 09:55