我在 Angular 中创建了一个自定义验证器。我在验证器validateFund
函数中使用了 Angular 服务。但是,Angular 提供了一个新的服务实例;当我尝试验证数据时,我的验证总是失败,因为服务实例是新的并且没有服务的其他实例中存在的数据。
这是验证器:
export function validateFund(control: AbstractControl): ValidationErrors | null {
const injector = Injector.create([{ provide: FundOrgService, deps: [] }]);
const fundOrgService = injector.get(FundOrgService);
console.log(fundOrgService.funds);
const fund: Fund = control.value;
const check = fundOrgService.getFundById(fund.portId);
return fund && check ? null : { 'fund-validity': true };
}