我试图在Angular中创建一个非常基本的表单(目前是一个标签和一个输入字段)。我知道这个问题在这里被问了很多次,但是尽管导入了FormsModule和ReactiveFormsModule,我仍然会得到这个错误,正如在Stackoverflow上多次提到的。
<form class="form" [formGroup]="form" (ngSubmit)="onSubmit()">
<!--formgroup topic-->
<div class="form-group">
<label for="topic">Topic:</label>
<br />
<input type="text" id="topic"
formControlName="topic" required
placeholder="Write something here..."
class="form-control" />
</div>
</form>
我的模块:
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
import { AddTicketComponent } from './add-ticket/add-ticket.component';
import { SettingsComponent } from './settings/settings.component';
import { OverviewComponent } from './overview/overview.component';
import { HistoryComponent } from './history/history.component';
import { RouterModule } from '@angular/router';
import { AppRoutingModule } from '../app-routing.module';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { MatTableModule } from '@angular/material/table';
import { BrowserModule } from '@angular/platform-browser';
@NgModule({
declarations: [
AddTicketComponent,
SettingsComponent,
OverviewComponent,
HistoryComponent
],
imports: [
CommonModule,
FontAwesomeModule,
RouterModule,
AppRoutingModule,
FormsModule,
ReactiveFormsModule,
MatTableModule,
BrowserModule
]
})
export class TicketToolModule { }
我的组件:
import { Component, Inject, OnInit } from '@angular/core';
import { FormGroup, FormControl, Validators } from '@angular/forms';
import { Ticket } from '../Data/Models/ticket';
@Component({
selector: 'app-history',
templateUrl: './history.component.html',
styleUrls: ['./history.component.css'],
})
export class HistoryComponent implements OnInit {
public form: FormGroup = new FormGroup({
id: new FormControl('', Validators.required),
topic: new FormControl('', Validators.required),
category: new FormControl('', Validators.required),
subcategory: new FormControl('', Validators.required),
impact: new FormControl('', Validators.required),
description: new FormControl('', Validators.required),
date: new FormControl('', Validators.required),
email: new FormControl('', Validators.required),
images: new FormControl('', Validators.required)
});
constructor() {
}
ngOnInit(): void {
this.form = new FormGroup({});
}
}
这是Stackblitz错误的打印屏幕:https://i.stack.imgur.com/teoyi.png
解决方案我在另一个模块中工作,即使我使用CLI创建了这个模块,它也没有被导入到AppModule中。导入后,所有错误都消失了。因此,如果您的项目中有不同的奇怪错误,请检查您的模块是否已在AppModule中导入!
将表单初始化移动到 ngonit hook,你可以在 ngoninit 中删除对 null form 的重新初始化,并且只保留外部赋值,但建议在 oninit hook 中启动它,你的代码应该可以工作
在html中使用表单组时,不应重置该表单组。请将其从ngOnInit中删除
this.form = new FormGroup({});
我已经测试过,在我的末端不可重复
链接:Stackblitz
让我知道,如果你可以用上面的链接复制
请确保您也添加了< code > BrowserAnimationModule 。有时那也会影响你。
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
我是Angular 6的新手,正在研究ReactiveForms。获取此错误并无法编译。我已经看到了不同的解决方案,并在导入中添加了ReactiveFormsModule指令,就像解决方案中建议的那样,但它仍然显示了相同的错误。请帮忙。
我不熟悉角度单元测试。。我正在尝试测试一个模态组件,但不断出现以下错误:“无法绑定到'formGroup',因为它不是'form'的已知属性。” 我尝试过将FormGroup、FormBuilder、Validator传递到测试提供程序中(因为它们是我正在测试的代码中使用的,所以我一次一个地将它们添加到一起),我还尝试将ReactiveFormsMoules添加到它中(与其他提供程序一起,而不与其
我的代码环境是Angular 9,当我设置反应式表单时,我遇到了这个错误: 我在Google和StackOverflow中做了一些研究,但在使用Angular 9时没有发现同样的问题,然而,根据其他帖子的建议,我确实将ReactiveFormsModule导入到app.module.ts、routing.module.ts以及recipe-edit.component.spec.ts文件中。然而,
我尝试使用Ionic(angular framework)进行简单登录,但我遇到了这个错误,我不知道如何解决它 我搜索了所有人,当他们添加< code >反应式模块时,错误消失了,但当我添加时,错误仍然存在 the app.module.ts 控制器1.ts 我错过了什么吗?请帮助我,我正在处理这个错误
------[解决了]----- 将更改为:(