我是一个初学者,第一次对框架进行Angular 测试.

我有一张简单的表格

<form (ngSubmit)="onSubmit()">
   <label for="test">Test Prompt: </label>
   <input type="text" id="test" name="test">
   <button type="submit">Search</button>
</form>

和一个刚刚用ng生成的组件:

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

@Component({
  selector: 'app-homepage',
  templateUrl: './homepage.component.html',
  styleUrls: ['./homepage.component.css']
})
export class HomepageComponent {
  constructor(){}
  onSubmit() {
    alert('test');
    console.log('Form submitted successfully!');
  }
}

但是,控制台不会记录任何内容,也不会弹出alert

我还在app.mode.ts中添加了该模块

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { HomepageComponent } from './homepage/homepage.component';
import { ReactiveFormsModule } from '@angular/forms';

@NgModule({
  declarations: [
    AppComponent,
    HomepageComponent
  ],
  imports: [
    BrowserModule,
    ReactiveFormsModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

推荐答案

添加一个答案,以便用最少的例子更好地解释.

在您的组件中:


form = this.fb.group({});

constructor(private fb: FormBuilder){}

然后在您的模板中:

<form [formGroup]="form" (ngSubmit)="...">

编辑:查看表单组指令文档here

Angular相关问答推荐

Transloco不加载Angular 17中的翻译

成Angular 的嵌套router-outlet

倒计时计时器,每10秒重新启动一次,共4次

Angular 如何观察DOM元素属性的变化?

元素上的Angular 管道链接不起作用

如何在Angular功能路由保护中取消订阅RxJs主题

当信号的值发生变化时,模板不会更新

SignalR:协商有效,但消息未发送(.NET/Angular)

Nz 树 Select .如何在子 node 中显示父 node 名称?

在更改检测之前调用创建的间谍

如何以像素为单位将属性绑定到 style.width?

错误 TS1086:无法在 Angular 9 的环境上下文中声明访问器

如何从Angular 2 中的按钮单击触发输入文件的单击事件?

`[(ngModel)]` vs `[(value)]`

angular2中的httpinterceptor类似功能是什么?

Angular 2:为什么在检索路由参数时使用 switchMap?

我应该在 Angular 4+ 应用程序中 for each 组件创建一个模块吗?

如何处理Angular2中的查询参数

如何作为模块的子模块路由到模块 - Angular 2 RC 5

如何使用 Angular CLI 删除包?