首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在带有角的FormGroup ()处设置FormControl和ngOnInit?

如何在带有角的FormGroup ()处设置FormControl和ngOnInit?
EN

Stack Overflow用户
提问于 2020-11-04 16:12:00
回答 2查看 1.7K关注 0票数 0

我刚刚开始学习,旧版本应该能工作:

代码语言:javascript
复制
import {Component, OnInit} from '@angular/core'
import {FormGroup, FormControl, Validators} from '@angular/forms'

@Component({
  selector: 'app-login-page',
  templateUrl: './login-page.component.html',
  styleUrls: ['./login-page.component.css']
})
export class LoginPageComponent implements OnInit {

  form: FormGroup

  constructor() {
  }

  ngOnInit() {
    this.form = new FormGroup(controls:{
      email: new FormControl(formState: null, validatorOrOpts: [Validators.required, Validators.email]),
      password: new FormControl(formState: null, validatorOrOpts: [Validators.required, Validators.minLength(minLength: 6)])
    })
  }

  onSubmit() {

  }

}

错误:

代码语言:javascript
复制
Failed to compile.

src/app/login-page/login-page.component.ts:17:39 - error TS1005: ',' expected. this.form = new FormGroup(controls:{  

src/app/login-page/login-page.component.ts:18:39 - error TS1005: ',' expected. email: new FormControl(formState: null, validatorOrOpts: [Validators.required, Validators.email]),

src/app/login-page/login-page.component.ts:18:62 - error TS1005: ',' expected. email: new FormControl(formState: null, validatorOrOpts: [Validators.required, Validators.email]),

src/app/login-page/login-page.component.ts:19:42 - error TS1005: ',' expected. password: new FormControl(formState: null, validatorOrOpts: [Validators.required, Validators.minLength(minLength: 6)])

src/app/login-page/login-page.component.ts:19:65 - error TS1005: ',' expected. password: new FormControl(formState: null, validatorOrOpts: [Validators.required, Validators.minLength(minLength: 6)])

src/app/login-page/login-page.component.ts:19:119 - error TS1005: ',' expected. password: new FormControl(formState: null, validatorOrOpts: [Validators.required, Validators.minLength(minLength: 6)])

角CLI: 10.2.0节点: 14.11.0操作系统:达尔文x64

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-04 16:25:56

您可以使用FormBuilder来帮助解决这个问题。

实施步骤

  • 注射FormBuilder
代码语言:javascript
复制
constructor (private fb: FormBuilder) {}
  • 调用注入服务上的.group()函数来生成FormGroup。这样您就不必使用new了,一切都可以正常工作。
代码语言:javascript
复制
ngOnInit() {
  this.form = this.fb.group({
    email: [null, [Validators.required, Validators.email]],
    password: [null, [Validators.required, Validators.minLength(6)]]
  })
}

见示例演示

票数 1
EN

Stack Overflow用户

发布于 2020-11-04 16:14:46

根据问题和代码,这个答案也是正确的。不带任何构造函数

代码语言:javascript
复制
import {Component, OnInit} from '@angular/core'
import {FormGroup, FormControl, Validators} from '@angular/forms'

导入

代码语言:javascript
复制
  form: FormGroup

  ngOnInit() {
    this.form = new FormGroup({
      email: new FormControl(null, [Validators.required, Validators.email]),
      password: new FormControl(null, [Validators.required, Validators.minLength(6)])
    })
  }

代码

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64683710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档