ws-form-builder
Version:
Ionic 2 Form Builder
71 lines (51 loc) • 1.71 kB
text/typescript
import { Component, Input, Output, EventEmitter } from '@angular/core';
import { FormBuilderProvider } from '../../providers/form-builder/form-builder';
({
selector: 'ws-checkbox-group',
template: `
<strong>{{question.question}}</strong>
<ion-list checkbox-group>
<ion-item *ngFor="let option of question.options; let i = index;">]
<ion-label>{{option.label}}</ion-label>
<ion-checkbox [(ngModel)]="option.value" (ionChange)='selectOption($event, question, i, option)'></ion-checkbox>
</ion-item>
</ion-list>
`,
styles: [`
`]
})
export class WsCheckboxGroupComponent {
('question') question;
() answerGiven = new EventEmitter();
isFieldValid:boolean = false;
showError:boolean = false;
constructor(public formBuilder: FormBuilderProvider){
}
selectOption(event,question,i,option){
let ifRequired = question.required;
question.valid = true;
let checkedCount = 0;
for(let i=0; i < Object.keys(question.options).length; i++){
//string = string+this.fieldAnswers[i];
if(question.options[i]['value']){
checkedCount++;
}
}
if(ifRequired){
if(typeof question.maximumChecked !== 'undefined'){
if(checkedCount >= question.maximumChecked){
question.valid = false;
}
}
if(typeof question.minimumChecked !== 'undefined'){
if(checkedCount <= question.minimumChecked){
question.valid = false;
}
}
}
this.answerGiven.emit(question);
}
validateAnswer(question,string){
return this.formBuilder.validateAnswer(question,string);
}
}