Передача ngSubmit в качестве ссылки Angular - PullRequest
0 голосов
/ 14 ноября 2018

Можно ли передать функцию ngSubmit в качестве параметра?Я создал компонент, который получает Id и имя функции ngSubmit, но как мне поместить этот параметр в шаблон?

У меня есть компонент с именем validation-form

validation-form.component.html

<form [id]="formId" method="post" novalidate [(ngSubmit)]="">
    <ng-content></ng-content>
</form>

Мой validation-form.component.ts имеет

  @Input() formId: string;
  @Input() submit: string;

Я передаю эти значения следующим образом

<validation-form formId="ResetPasswordForm" submit="resetPassword()">
</validation-form>

Я хочу поставитьзначение @Input () submit: строка;к (ngSubmit).Как я могу это сделать?

1 Ответ

0 голосов
/ 15 ноября 2018

Похоже, что вы хотите обработать validation или submission на родительском компоненте, а не на дочернем компоненте validation-form.

Для этого вы можете использовать @Output декоратор.Это будет распространять событие от ребенка к родителю.Вот код, который может помочь вам достичь того же.

validation-form.component.ts

  @Input() formId: string;
  @Input() submit: string;
  @Output() submit = new EventEmitter();

  public submit(){
     this.validate.emit(this.formId); //<-- you can pass the object if you need more info to pass.
  }

validation-form.component.html

<form [id]="formId" method="post" novalidate (ngSubmit)="submit()">
    <ng-content></ng-content>
</form>

Родительский компонент.html

<validation-form formId="ResetPasswordForm" (submit)="resetPassword($event)">
</validation-form>

Родительский компонент.ts

public resetPassword(formId){
  console.log("Form Id ", formId);
}
...