De dentro da diretiva, como posso obter acesso ao NgControl para adicionar validadores
Estou recebendo o erro:
ERROR Error: StaticInjectorError(AppModule)[ControlDirective -> NgControl]:
StaticInjectorError(Platform: core)[ControlDirective -> NgControl]:
NullInjectorError: No provider for NgControl!
at _NullInjector.get (core.js:1002)
at resolveToken (core.js:1300)
at tryResolveToken (core.js:1242)
at StaticInjector.get (core.js:1110)
at resolveToken (core.js:1300)
at tryResolveToken (core.js:1242)
at StaticInjector.get (core.js:1110)
at resolveNgModuleDep (core.js:10854)
at NgModuleRef_.get (core.js:12087)
at resolveDep (core.js:12577)
Quando tento injetar NgControl no meu construtor de componentes como este:
constructor(
public renderer: Renderer2,
public hostElement: ElementRef,
private control: NgControl,
) {
console.log(control);
}
Tentei adicioná-lo como um provedor no meu módulo, mas parece que não é umInjectable
não mais.
O que estou tentando fazer é a resposta paraessa questão. Estou vendo várias perguntas SO antigas, nas quais o NgControl está sendo injetado, mas parece que os formulários no Angular mudaram bastante nas versões anteriores.
O que eu preciso fazer é pegar o controle e adicionar validadores. O que devo fazer de diferente para obter acesso ao controle para fazer isso?