获取模板驱动 Angular 表单的值时出错

Getting error in fetching value of template driven Angular form

在寄存器函数中,我在存储表单控件的值时遇到错误。

using "let firstname" , "let lastname" , "let email" I am getting error [tslint] Identifier 'firstName' is never reassigned; use 'const' instead of 'let'. (prefer-const)

Using debugger I am getting error [tslint] Use of debugger statements is forbidden (no-debugger)

Also in the console I am getting error Cannot read property 'value' of undefined

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

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

  constructor() { }

  ngOnInit() {
  }

  register(regForm: any) {
    debugger;
    let firstName =  regForm.control.firstname.value;
    let lastname = regForm.control.lastname.value;
    let email = regForm.control.email.value;

    alert(firstName);
   console.log(regForm);

  }

}

Html ->

<div class="container">
  <div class="row">
    <div class="form-bg">
      <form #regForm ='ngForm' (ngSubmit) ="register(regForm)">
       <h2 class="text-center"> Registeration Form </h2>
      <br/>
      <div class="form-group">
       <input type="text" class="form-control" placeholder="First Name" name="firstname" ngModel>
      </div>  


      <div class="form-group">
          <input type="text" class="form-control" placeholder="last Name" name="lastname" ngModel>
         </div>  


      <div class="form-group">
          <input type="text" class="form-control" placeholder="Eamil Id" name="email" ngModel>
         </div>  

          <br/>

          <div class="align-center">
            <button type="submit" class="btn btn-primary" id="register"> Register </button>
          </div>
          </form>   
      </div>  
  </div>
</div>

因为错误说你没有使用 firstName 没有分配给任何地方的任何变量,只需将它更改为 const,它应该可以正常工作,

const firstName =  regForm.control.firstname.value;
const lastname = regForm.control.lastname.value;
const email = regForm.control.email.value;

使用 const 的原因是值不会在代码块内更改,而使用 let 将允许更改变量。

Cannot read property 'value' of undefined error

是因为

您已将 controls 写为 control。替换它,它应该可以工作。

register(regForm: any) {
    debugger;
    let firstName =  regForm.controls.firstname.value;
    let lastname = regForm.controls.lastname.value;
    let email = regForm.controls.email.value;    
   alert(firstName);
   console.log(regForm);    
}

您可以忽略第一个警告,或者将 let 更改为 const 也没有问题,因为在设置它们之后您不会修改它们。

谢谢,我得到了错误,在这里我使用了 regForm.control 我错过了 s 控制。 所以会有

let firstName = regForm.controls.firstname.value; let lastname = regForm.controls.lastname.value; let email = regForm.controls.email.value;

For disable Use of debugger statements is forbidden warning apply this rule ,n tsconfig.json:

"rules": {
    "no-debugger": false,
    //... 
}