Angular Object 可能为“null”。 <span *ngIf="checkoutForm.get('emailAddr').hasError('required')&qu

Posted

技术标签:

【中文标题】Angular Object 可能为“null”。 <span *ngIf="checkoutForm.get(\'emailAddr\').hasError(\'required\')">输入电子邮件地址</span>时出错【英文标题】:Angular Object is possibly 'null'. Error at <span *ngIf="checkoutForm.get('emailAddr').hasError('required')">Enter email address</span>Angular Object 可能为“null”。 <span *ngIf="checkoutForm.get('emailAddr').hasError('required')">输入电子邮件地址</span>时出错 【发布时间】:2021-04-24 20:39:24 【问题描述】:

嗨,我是 Angular 11 的新手,谁能帮我解决这个错误 - 这是我的代码。

checkout.component.html

<h3>Checkout forms - Using Reactive forms</h3>
<div class="container">
    <form [formGroup]="checkoutForm" (ngSubmit)="postData();">
        <div class="form-group">
          <label for="exampleInputEmail1">Email address</label>
          <input type="email" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" placeholder="Enter email" name="emailAddressField" formControlName="emailAddr">
          <span *ngIf="checkoutForm.get('emailAddr').hasError('required')">Enter email address</span>
        </div>
        <div class="form-group">
          <label for="exampleInputPassword1">Quantity</label>
          <input type="password" class="form-control" id="exampleInputPassword1" placeholder="Password" name="passwordField" formControlName="quantity">
          <small id="emailHelp" class="form-text text-muted">Enter Quantity</small>
        </div>
        <div class="form-check">
          <input type="checkbox" class="form-check-input" id="exampleCheck1" name="termsField" formControlName="terms">
          <label class="form-check-label" for="exampleCheck1">Agree to Terms</label>
        </div>
        <br>
        <button type="submit" class="btn btn-primary" [disabled]="!checkoutForm.valid">Checkout</button>
    </form>
</div>

我在 输入电子邮件地址

处收到错误

checkout.component.ts

import  Component, Input, OnInit  from '@angular/core';
import  FormGroup, FormControl, FormBuilder,Validators from '@angular/forms';

@Component(
  selector: 'app-checkout',
  templateUrl: './checkout.component.html',
  styleUrls: ['./checkout.component.css']
)
export class CheckoutComponent implements OnInit 
  checkoutForm:FormGroup;
  
  constructor(private formBuilder:FormBuilder) 

     this.checkoutForm = formBuilder.group(
      emailAddr: ['',Validators.required],
      quantity: ['',Validators.required],
      terms: ['',Validators.requiredTrue]
    );
  

  

  
  ngOnInit(): void 

  

  postData()
    console.log(this.checkoutForm);
  

【问题讨论】:

【参考方案1】:

而不是使用

<span *ngIf="checkoutForm.get('emailAddr').hasError('required')">Enter email address</span>

试试

<span *ngIf="checkoutForm.get('emailAddr')?.hasError('required')">Enter email address</span>

我已经在我的电脑上测试过这段代码,也许它也可以帮助你解决编译错误。

【讨论】:

【参考方案2】:

您可以使用*ngIf="cadastroForm.get('username')?.errors"&gt;

你必须使用?

【讨论】:

正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。 什么是cadastroForm

以上是关于Angular Object 可能为“null”。 <span *ngIf="checkoutForm.get('emailAddr').hasError('required')&qu的主要内容,如果未能解决你的问题,请参考以下文章

Typescript react -Object 可能为零

错误:找不到类型为“object - Angular 7”的不同支持对象“[object Object]”[重复]

怎么判断object不为null

模型的Angular-Web api post方法为null

Angular 2+ - 当 ngIf 导致隐藏时将 ngModel 设置为 null

如何解决在Angular 6中为业力测试抛出的[object ErrorEvent]