Мне нужно получить currentBalance от currentAccount, но я получаю сообщение об ошибке:
Ошибка: ошибка (в обещании): TypeError: Невозможно прочитать свойство 'currentAccount' из неопределенного.
Я могу отобразить баланс в моем HTML файле, используя {{currentAccount.currentBalance}}, но возвращается как неопределенный, когда я включаю его в функцию. Моя функция работает отлично, если я заменяю баланс на число c, просто не работает с currentBalance.
Вот мой код в файле TS:
import { Component, OnInit, Input} from '@angular/core';
import { FormControl, FormGroup, Validators, ValidatorFn, FormBuilder, AbstractControl, ValidationErrors } from '@angular/forms';
import { ICustomerAccount } from 'src/app/customer/interfaces';
import { CustomerService } from 'src/app/customer/services/customer.service';
import { WireErrorComponent } from '../wire-error/wire-error.component';
@Component({
selector: 'app-wire-start',
templateUrl: './wire-start.component.html',
styleUrls: ['./wire-start.component.scss']
})
export class WireStartComponent implements OnInit{
@Input() currentAccount: ICustomerAccount;
currentBalance: string;
maxAmount = 1000000;
constructor(private dialog: MatDialog,
private _customerService: CustomerService,
private formBuilder: FormBuilder
) { }
wireStartForm: FormGroup = this.formBuilder.group({
purpose: new FormControl('', Validators.required),
amount: ['', [Validators.max(this.maxAmount), this.customValidatorFn]]
});
customValidatorFn(control: AbstractControl): { [key: string]: any } | null {
const amount: number = control.value;
const balance: number = Number(this.currentAccount.currentBalance);
if (balance >= amount) {
return null;
} else {
return {'amountMinError': true}
}
}
ngOnInit(): void {
this.currentAccount = this._customerService.getSelectedAccount();
}
}