Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
财产';我的表格';没有初始值设定项,并且未在构造函数中明确指定 从'@angular/core'导入{Component,HostListener,OnInit}; 从“@angular/forms”导入{FormBuilder、FormGroup、Validators}; @组成部分({ 选择器:“应用程序联系人表单”, templateUrl:“./contact form.component.html”, 样式URL:['./联系表单.component.css'], }) 导出类ContactFormComponent实现OnInit{ myForm:FormGroup; 构造函数(私有fb:FormBuilder){ this.myForm.valueChanges.subscribe(console.log); } ngOnInit(){} createForm(){ this.myForm=this.fb.group({ 名称:['',Validators.compose([Validators.required,Validators.minLength(3), 验证器。最大长度(50) ])], 电子邮件:['',Validators.compose([Validators.required,Validators.email]), 性别:['',验证器。必填], 条款:['',验证器。要求真实] }); } } 错误 错误:src/app/contact form/contact form.component.ts:15:5-错误TS2564:属性“myForm”没有初始值设定项,并且未在构造函数中明确指定。 15我的表格:表格组; ~~~~~~ src/app/contact-form/contact-form.component.ts:17:10-错误TS2565:分配前使用了属性“myForm”。 17 this.myForm.valueChanges.subscribe(console.log);_Angular_Typescript - Fatal编程技术网

财产';我的表格';没有初始值设定项,并且未在构造函数中明确指定 从'@angular/core'导入{Component,HostListener,OnInit}; 从“@angular/forms”导入{FormBuilder、FormGroup、Validators}; @组成部分({ 选择器:“应用程序联系人表单”, templateUrl:“./contact form.component.html”, 样式URL:['./联系表单.component.css'], }) 导出类ContactFormComponent实现OnInit{ myForm:FormGroup; 构造函数(私有fb:FormBuilder){ this.myForm.valueChanges.subscribe(console.log); } ngOnInit(){} createForm(){ this.myForm=this.fb.group({ 名称:['',Validators.compose([Validators.required,Validators.minLength(3), 验证器。最大长度(50) ])], 电子邮件:['',Validators.compose([Validators.required,Validators.email]), 性别:['',验证器。必填], 条款:['',验证器。要求真实] }); } } 错误 错误:src/app/contact form/contact form.component.ts:15:5-错误TS2564:属性“myForm”没有初始值设定项,并且未在构造函数中明确指定。 15我的表格:表格组; ~~~~~~ src/app/contact-form/contact-form.component.ts:17:10-错误TS2565:分配前使用了属性“myForm”。 17 this.myForm.valueChanges.subscribe(console.log);

财产';我的表格';没有初始值设定项,并且未在构造函数中明确指定 从'@angular/core'导入{Component,HostListener,OnInit}; 从“@angular/forms”导入{FormBuilder、FormGroup、Validators}; @组成部分({ 选择器:“应用程序联系人表单”, templateUrl:“./contact form.component.html”, 样式URL:['./联系表单.component.css'], }) 导出类ContactFormComponent实现OnInit{ myForm:FormGroup; 构造函数(私有fb:FormBuilder){ this.myForm.valueChanges.subscribe(console.log); } ngOnInit(){} createForm(){ this.myForm=this.fb.group({ 名称:['',Validators.compose([Validators.required,Validators.minLength(3), 验证器。最大长度(50) ])], 电子邮件:['',Validators.compose([Validators.required,Validators.email]), 性别:['',验证器。必填], 条款:['',验证器。要求真实] }); } } 错误 错误:src/app/contact form/contact form.component.ts:15:5-错误TS2564:属性“myForm”没有初始值设定项,并且未在构造函数中明确指定。 15我的表格:表格组; ~~~~~~ src/app/contact-form/contact-form.component.ts:17:10-错误TS2565:分配前使用了属性“myForm”。 17 this.myForm.valueChanges.subscribe(console.log);,angular,typescript,Angular,Typescript,快走 this.myForm.valueChanges.subscribe(console.log) 表单创建后 this.myForm = this.fb.group 因为您试图在表单创建之前订阅表单 createForm() { this.myForm = this.fb.group({ name: ['', Validators.compose([Validators.required, Validators.minLength(3), Validato

快走

   this.myForm.valueChanges.subscribe(console.log)
表单创建后

   this.myForm = this.fb.group 
因为您试图在表单创建之前订阅表单

  createForm() {
  this.myForm = this.fb.group({
    name: ['', Validators.compose([Validators.required, Validators.minLength(3), 
Validators.maxLength(50)])],
    email: ['', Validators.compose([Validators.required, Validators.email])],
    gender: ['', Validators.required],
    terms: ['', Validators.requiredTrue]
     });

this.myForm.valueChanges.subscribe(console.log)   }

您应该将
createForm()
代码移动到组件的构造函数中。在执行此操作之前,
this.myForm.valueChanges.subscribe(console.log)


理想情况下,您应该在构造函数中创建表单,并将订阅保存在
ngOninit()

中。默认角度模板现在在
tsconfig
文件中将
strictPropertyInitialization
设置为true

你可以做两件事:

  • 应用初始化属性的最佳实践(内联或构造函数中)
  • 禁用tsconfig文件中的
    strictPropertyInitialization
    标志(不推荐)

信息:

该错误与TypeScript的strictPropertyInitialization有关。可以通过以下方式进行修复:

  myForm: FormGroup = this.fb.group({
    name: ['', Validators.compose([Validators.required, Validators.minLength(3), Validators.maxLength(50)])],
    email: ['', Validators.compose([Validators.required, Validators.email])],
    gender: ['', Validators.required],
    terms: ['', Validators.requiredTrue]
  });

  constructor(private fb: FormBuilder) { }

(实现来自Angular's,他们在那里提供,这是他们在profile editor.component.ts中的实现方式)

谢谢,但此错误保留错误:src/app/contact form/contact form.component.ts:15:5-错误TS2564:属性“myForm”没有初始值设定项,并且在构造函数中没有明确指定。15我的表格:表格组~~~~~~但此错误表示您不在createform函数内移动valueChanges。只需在ngOnit中移动并调用createform函数谢谢,请接受,如正确的回答谢谢,但问题变为createtForm(),谢谢,但类型是formgroup,我无法初始化,当我添加时!出现其他错误
  myForm: FormGroup = this.fb.group({
    name: ['', Validators.compose([Validators.required, Validators.minLength(3), Validators.maxLength(50)])],
    email: ['', Validators.compose([Validators.required, Validators.email])],
    gender: ['', Validators.required],
    terms: ['', Validators.requiredTrue]
  });

  constructor(private fb: FormBuilder) { }