Shu*_*rma 12 javascript angular-forms angular5 angular6 angular-formbuilder
我在角度2/4中使用了表单构建器,但现在我在角度6中使用它.我已经看到了这个问题(不能绑定到'formGroup',因为它不是'form'的已知属性)但是它是针对角度2.我对角度4完全相同,但我得到了这个错误.请帮忙:我的代码是:
app.module.ts :(我已导出FormsModule和ReactiveFormsModule):
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { LocalStorage } from './services/localStorage.service';
import { HttpModule, RequestOptions, XHRBackend } from '@angular/http';
import { Router } from '@angular/router';
import { RouterModule } from '@angular/router';
import { AppComponent } from './app.component';
import { routing } from './app.route';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { LoginComponent } from './components/login/component';
import { ForgotComponent } from './components/forgotPassword/component';
@NgModule({
exports: [
FormsModule,
ReactiveFormsModule
],
declarations: [
AppComponent,LoginComponent,ForgotComponent
],
imports: [
BrowserModule,
routing,
],
providers: [
LocalStorage,
],
bootstrap: [AppComponent],
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)
login.component.ts:
import { Component, ViewContainerRef, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { FormBuilder, FormGroup, Validators, NgForm } from '@angular/forms';
import { LocalStorage } from '../../services/localStorage.service';
import { environment } from '../../../environments/environment';
import { HttpService } from '../../services/http.service';
import { emailRegexp, passwordRegexp } from '../../constants';
@Component({
selector: 'login-app',
templateUrl: './login.component.html',
styleUrls: ['./login.component.scss']
})
/**
* LoginComponent class
*/
export class LoginComponent {
private loginForm: any;
loginValue:any;
constructor(
private formBuilder: FormBuilder,
private _router: Router,
private httpService: HttpService,
private localStorage: LocalStorage,
) {
this.loginValue = new LocalStorage(environment.localStorageKeys.ADMIN).value;
this.loginForm = this.formBuilder.group({
email: ['', Validators.compose([Validators.required, Validators.pattern(emailRegexp)])],
password: ['', Validators.compose([Validators.required, Validators.minLength(8)])]
});
}
}
Run Code Online (Sandbox Code Playgroud)
login.component.html :(像这样)
<form [formGroup]="loginForm" (ngSubmit)="loginForm.valid && login()" novalidate>
<input type="email" autocomplete="off" (focus)="focusFunction()" placeholder="User Name" formControlName="email" class="form-control">
<div class="col-12">
<input autocomplete="off" type="password" (focus)="focusFunction()" placeholder="Password" formControlName="password" class="form-control">
</div>
<button [disabled]="!loginForm.valid" type="submit" class="btn btn-inverse btn-rounded btn-block">
<div *ngIf="!loading" class="sign-in">Sign in</div>
</button>
</form>
Run Code Online (Sandbox Code Playgroud)
Pra*_*ale 27
在您的下面添加以下代码app.module.ts
:
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
Run Code Online (Sandbox Code Playgroud)
并在导入数组中:
imports: [
BrowserModule,
FormsModule,
ReactiveFormsModule
]
Run Code Online (Sandbox Code Playgroud)
所以摆弄同样令人沮丧的问题——一个干净的 angular-cli 安装和一个自定义的子组件/模块 (component.html...) 和同样的错误(“无法绑定到‘formGroup’,因为它不是一个'形式'的已知属性”)。Angular CLI:7.2.3,节点:10.9.0,操作系统:win32 x64,Angular:7.2.2
我终于根据上面的内容让它工作了,但是我把 FormsModule 和 ReactiveFormsModule 导入放在app-routing.module.ts(不是 app.module.ts)+ 子组件的 ts (在我的例子中:forms-demo。组件.ts):
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
....
@NgModule({
imports: [
RouterModule.forRoot(routes),
FormsModule, ReactiveFormsModule
....
Run Code Online (Sandbox Code Playgroud)
之后 ng build/serve 工作没有任何错误。
我不是 Angular 专家,但我的猜测是 v7 方法 app.module.ts 委托应用程序路由,后一个文件是应用程序和组件导入和依赖项发生的地方.... YMMV 但希望它有所帮助.
归档时间: |
|
查看次数: |
20270 次 |
最近记录: |