В Angular 2 Я пытаюсь создать свой собственный валидатор.Пользовательский валидатор Angular2 с зависимостью
Я создал свой собственный класс CustomValidators, который реализует интерфейс валидатора.
import { FormControl } from "@angular/forms";
import { MyhttpService } from "./myhttp.service";
import { Response } from "@angular/http";
import { Injectable, Directive } from '@angular/core';
@Injectable()
export class CustomValidators{
constructor(private _http : MyhttpService){
}
public api(c : FormControl)
{
// Run
this._http.get("/expenses/email?email=" + c.value).subscribe((res:Response) => {
if(res.status === 200){
// email exists
return null;
} else {
return {"email" : true}
}
});
}
Если я делаю api статическим методом, то я могу успешно использовать класс.
this._formDetails = fb.group({
"managerEmail" : ["", [Validators.required, CustomValidators.api] ]
});
Однако, конечно, это статический метод, поэтому я не имею доступ к какому-либо из значений конструктора, как конструктор не был запущен.
Поэтому я не могу найти способ реализации пользовательского валидатора с зависимостями, должен быть способ.
Я попробовал листинг CustomValidators как поставщика, поэтому мой класс получает экземпляр объекта класса.
Свойство 'апи' не существует на типе 'TYPEOF CustomValidators'
Am I обеспечивая класс в правильном пути? Почему метод не существует?
У меня такая же проблема, как вы нашли решение? –