Pessoal, criei um controle que validação de formulários, só que estou tendo problemas ao passar o nome da função do ngSubmit por parâmetro.
O componente que eu criei recebe 2 parâmetros. O id do formulário que estou passando e o nome da função que será executada ao clicar no botão submit.
O uso do componente se resume a isso:
<validation-form formId="ResetPasswordForm" submit="resetPassword()"> </validation-form>
O .ts do componente está assim:
import { Component, Input, Injector, ElementRef, ViewChild } from '@angular/core';
import { Router, ActivatedRoute } from '@angular/router';
import { AppComponentBase } from '@shared/app-component-base';
import { accountModuleAnimation } from '@shared/animations/routerTransition';
@Component({
selector: 'validation-form',
templateUrl: './validation-form.component.html',
styleUrls: ['./validation-form.component.less'],
animations: [accountModuleAnimation()]
})
export class ValidationFormComponent extends AppComponentBase {
@ViewChild('form') form: ElementRef;
@Input() formId: string;
@Input() submit: string;
constructor(
injector: Injector,
private _router: Router,
private _activatedRouter: ActivatedRoute
) {
super(injector);
}
}
O template html do meu componente está dessa maneira:
<form [id]="formId" method="post" novalidate [(ngSubmit)]="">
<ng-content></ng-content>
</form>
Gostaria de saber como colocar o valor que está sendo passado para a variável @Input submit para a diretiva (ngSubmit).
Outra coisa, ao ser executada essa função, ela vai ser executada no validation-form.component.ts ou no componente que foi chamado?