Применить пользовательскую директиву к форме - PullRequest
0 голосов
/ 30 января 2019

Я пытаюсь добавить пользовательскую директиву, которая будет перехватывать событие submit и выполнять некоторые операции.

Это директива, которую я пытаюсь создать:

import { Directive, OnInit } from '@angular/core';
import { FormGroup } from '@angular/forms';

@Directive({
  selector: '[validate-form]',
  host: {
    '(ngSubmit)': 'onSubmit($event)'
  }
})
export class FormValidationDirective implements OnInit  {

  constructor(
    public form: FormGroup
  ) {}

  ngOnInit() {

  }

  onSubmit($event) {
    console.warn("submit");
  }
}

Поскольку я использую ее из общего модуля, я объявил ее так:

@NgModule({
  declarations: [
    FormValidationDirective,
    //...
  ],
  imports: [
    CommonModule,
    //...
  ],
  exports: [
    FormValidationDirective,
    //...
  ]
})
export class mySharedModule { }

И вот как я это называю в шаблоне:

<form validate-form [formGroup]="myForm" (ngSubmit)="submit()">

, но доступ к странице компонента заканчивается ошибкой:

 StaticInjectorError(Platform: core)[FormValidationDirective -> FormGroup]: 
    NullInjectorError: No provider for FormGroup!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...