Доступ к экземпляру FormGroup из директивы, прикрепленной к <form> - PullRequest
0 голосов
/ 14 декабря 2018

HTML

<form [formGroup]="form">
  <input type="text" formControlName="name" class="form-control" />
  <div *errorFeedback name="name" class="error-feedback"></div>
</form>

Директива формы.

@Directive({
  selector: 'form'
})
export class FormGroupErrorDirective implements OnInit, AfterContentChecked {

  @ContentChildren(ErrorFeedbackDirective) errorFeedbackDirectives: QueryList<ErrorFeedbackDirective>;

  ngAfterContentChecked(): void {
    this.errorFeedbackDirectives.forEach(dir => {
      // ???? How can I get this.formGroup ???
      dir.formControl = this.formGroup.get(dir.formControlName);
    });
  }

}

* Директива errorFeedback

// tslint:disable:directive-selector
@Directive({
  selector: '[errorFeedback]',
})
export class ErrorFeedbackDirective implements OnInit {
  // tslint:disable:no-input-rename
  @Input('errorFeedback')
  name: string;

  formControl!: FormControl;

  constructor(private el: ElementRef,
              private templateRef: TemplateRef<any>,
              private viewContainer: ViewContainerRef) { }
  ngOnInit() {
  }
}

Как получить доступ к экземпляру директивы FormGroup изв FormGroupErrorDirective?

То, что я пытаюсь сделать здесь, это передать экземпляр FormControl директиве *errorFeedback.Затем я буду использовать его для наблюдения за изменениями статуса и ошибками.

Или есть ли лучший способ получить доступ к экземпляру FormControl внутри *errorFeedback?

...