'HTMLFormElement' 类型的参数不可分配给 'ElementRef<any>' 类型的参数

Argument of type 'HTMLFormElement' is not assignable to parameter of type 'ElementRef<any>'

我正在使用 angular 并创建一个表单元素。

我里面有这个app.component.html,

<form (ngSubmit)="onSubmit(f)" #f></form>

还有这个里面app.component.ts,

import { Component, ElementRef } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {

    onSubmit(form: ElementRef){
        alert('ss');
    }
}

但是出现这个错误。

src/app/app.component.html:16:34 - error TS2345: Argument of type 'HTMLFormElement' is not assignable to parameter of type 'ElementRef'. Property 'nativeElement' is missing in type 'HTMLFormElement' but required in type 'ElementRef'.

16 <form (ngSubmit)="onSubmit(f)" #f>

我不认为你可以这样做。根据Angular NgForm,你可以这样尝试:

<form #f="ngForm" (ngSubmit)="onSubmit(f)" novalidate>
  ...
</form>
import {NgForm} from '@angular/forms';
...

onSubmit(f: NgForm) {
  console.log(f.value);
  console.log(f.valid);
}