angular - 在自定义验证器指令中注入(inject) ngControl,导致循环依赖

标签 angular angular2-directives

我正在尝试创建自定义 angular 2 验证器指令,它像这样注入(inject) NgControl:

@Directive({
  selector: '[ngModel][customValidator]',
  providers: [{provide: NG_VALIDATORS, useExisting: CustomValidatorDirective, multi: true}]
})
export class CustomValidatorDirective implements Validator {
  private validateFunction: ValidatorFn;

  constructor(private control: NgControl) { };

}

但是我得到以下错误:

Cannot instantiate cyclic dependency! NgControl

有谁知道我该如何解决它,以便我可以在初始化后访问 ngControl?

最佳答案

您可以通过 Injector 注入(inject) NgControl 以避免循环依赖。

constructor(private _injector: Injector) { }

ngOnInit() {
  console.log(this._injector.get(NgControl))
}

关于angular - 在自定义验证器指令中注入(inject) ngControl,导致循环依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39809084/

相关文章:

c# - 无法将文件从 Angular 8 上传到 Asp.net Core 2.2

Angular-CLI 在项目库中创建组件

css - mat-checkbox 自定义颜色无法更改

javascript - Angular 2 : How to handle a async image (blob) request?

javascript - 如何使用 Angular 6 中的自定义指令呈现动态生成的内联 SVG

具有功能 RouterLink 的 Angular2 动态 HTML

regex - 模式验证器对于 IP 地址正则表达式无效

javascript - 使用内置过滤器时,Angular 2 ag-grid 的“清除过滤器”按钮会清除文本框而不刷新列

typescript - angular2 - 组件指令中的触发事件

javascript - angular 2+垂直调整div