I am binding this control with Angular 5. But is is throwing error as below.
![image](https://user-images.githubusercontent.com/44795445/48043498-ece73500-e1ac-11e8-9ff8-bc6530ae68be.png)
Below is my TypeScript file.
private twilioRequestId: string;
public twilioRequestForm;
public requestedTime: ITime;
public scheduledTime: ITime;
public twilioRequest: ITwilioRequest;
public twilioRequestCopy: ITwilioRequest;
constructor(private servicerequestservice: ServiceRequestService, private route: ActivatedRoute,
private fb: FormBuilder) {
this.twilioRequestId = this.route.snapshot.params['twilioRequestId'];
this.requestedTime = { hour: DateTimeHelper.Hour, minute: DateTimeHelper.Minute, meriden: DateTimeHelper.StringPm, format: DateTimeHelper.Format };
this.scheduledTime = { hour: DateTimeHelper.Hour, minute: DateTimeHelper.Minute, meriden: DateTimeHelper.StringPm, format: DateTimeHelper.Format };
}
ngOnInit() {
this.getTwilioRequestData();
}
onCancelChanges() {
this.twilioRequest = cloneDeep(this.twilioRequestCopy);
this.rebindForm();
}
getTwilioRequestData() {
this.servicerequestservice.getServiceRequestById(this.twilioRequestId).subscribe((twilioRequest) => {
this.twilioRequest = twilioRequest;
this.rebindForm();
this.twilioRequestCopy = cloneDeep(this.twilioRequest);
});
}
private rebindForm() {
this.twilioRequest.requestedDate = new Date(this.twilioRequest.requestedDate);
this.requestedTime.meriden = DateTimeHelper.getMeriden(this.twilioRequest.requestedDate);
this.requestedTime.hour = DateTimeHelper.calculateHourFromDate(this.twilioRequest.requestedDate, this.requestedTime.meriden);
this.requestedTime.minute = this.twilioRequest.requestedDate.getMinutes();
if (this.twilioRequest.scheduledDate) {
this.twilioRequest.scheduledDate = new Date(this.twilioRequest.scheduledDate);
this.scheduledTime.meriden = DateTimeHelper.getMeriden(this.twilioRequest.scheduledDate);
this.scheduledTime.hour = DateTimeHelper.calculateHourFromDate(this.twilioRequest.scheduledDate, this.scheduledTime.meriden);
this.scheduledTime.minute = this.twilioRequest.scheduledDate.getMinutes();
}
this.twilioRequestForm = this.fb.group({
requestedDate: [this.twilioRequest.requestedDate, [Validators.required]],
scheduledDate: [this.twilioRequest.scheduledDate],
requestedReason: [this.twilioRequest.requestedReason, [Validators.required]],
requestedTime: [this.requestedTime],
scheduledTime: [this.scheduledTime]
});
}
updateRequest() {
if (this.twilioRequestForm.valid) {
this.twilioRequest.requestedDate = new Date(this.twilioRequestForm.value.requestedDate);
this.twilioRequest.requestedDate.setHours(DateTimeHelper.calculateHourFromTime(this.requestedTime));
this.twilioRequest.requestedDate.setMinutes(this.requestedTime.minute);
this.twilioRequest.requestedDate.setMinutes(DateTimeHelper.getTimezoneOffset(this.twilioRequest.requestedDate));
if (this.twilioRequestForm.value.scheduledDate) {
this.twilioRequest.scheduledDate = new Date(this.twilioRequestForm.value.scheduledDate);
if (this.twilioRequest.scheduledDate) {
this.twilioRequest.scheduledDate.setHours(DateTimeHelper.calculateHourFromTime(this.scheduledTime));
this.twilioRequest.scheduledDate.setMinutes(this.scheduledTime.minute);
this.twilioRequest.scheduledDate.setMinutes(DateTimeHelper.getTimezoneOffset(this.twilioRequest.scheduledDate));
}
}
this.twilioRequest.requestedReason = this.twilioRequestForm.value.requestedReason;
this.servicerequestservice.updateServiceRequest(this.twilioRequest).subscribe((result) => {
if (result == 1) {
this.getTwilioRequestData();
alert('Service request details updated successfully.');
} else {
alert('Something went wrong. Please try again later.');
}
});
}
}