angular2-boiler-plate
Version:
Angular 2 Boiler plate that integrated with WebPack, TypeScript, DatePicker, RxJs for Reactive Extensions in Java Script , Karma , Jasmine for unit testing , WebKit ,protractor e2e testing
51 lines (43 loc) • 1.5 kB
text/typescript
import { Component, Input, Output, EventEmitter } from '@angular/core';
import { FormBase } from '../sui.util/sui.util.formBase';
import { ValidatiorService } from '../sui.util/sui.util.validatiorService';
import { AlertType } from '../sui.alert/sui.alert.component';
({
selector: 'sui-form',
templateUrl: './sui.form.component.html',
providers: [ValidatiorService]
})
export class FormComponent {
() fields: FormBase[] = [];
('send') submitted: EventEmitter<any> = new EventEmitter();
validationSummary: string = '';
alertType: AlertType = AlertType.error;
constructor(private _validator: ValidatiorService) { }
validateForm(): boolean {
let isFormValid = true;
this.fields.forEach(y => {
let fv = this._validator.checkFieldValid(y);
if (!fv.valid) {
{
isFormValid = false;
this.validationSummary += ' <br> ' + fv.errorMessage;
}
}
});
return isFormValid;
}
onSuiFormSubmit() {
this.validationSummary = '';
let isFormValid = this.validateForm();
if (isFormValid) {
let obj = {};
this.fields.forEach(y => {
obj[y.key] = y.value;
});
this.submitted.emit(obj);
}
}
onSuiFormCancel() {
this.submitted.emit(false);
}
}