【发布时间】:2022-01-07 02:49:28
【问题描述】:
我一直在绞尽脑汁想弄清楚为什么这个解析错误不断发生。
在 [zip.errors?.['required']] 中的第 13 列出现意外的标记 [、预期的标识符或关键字]
我怀疑“?”是对寻找该键的错误数组的查询。我的搜索没有发现任何关于这个“?”的信息。句法。我见过的打字稿资源似乎假设我知道它是如何定义的。我很高兴看到指针。
谢天谢地,https://angular.io/guide/form-validation#validating-input-in-reactive-forms 上的代码示例可以正常工作,因此我的 Angular 库似乎没有问题。这是我遵循工作示例代码的模式后最简单的类和模板。
捐赠.component.ts
import { Component, NgZone, ViewChild, OnInit } from '@angular/core';
import { BackendService } from '../service/backend.service';
import { FormControl, FormGroup, Validators } from '@angular/forms';
@Component({
moduleId: module.id,
selector: 'app-donate',
templateUrl: './donate.component.html',
styleUrls: ['./donate.component.scss']
})
export class DonateComponent implements OnInit {
donateForm: FormGroup;
ngOnInit(): void {
this.donateForm = new FormGroup({
name: new FormControl('', [Validators.required]),
zip: new FormControl('', [Validators.required])
});
}
get name() { return this.donateForm.get('name')!; }
get zip() { return this.donateForm.get('zip')!; }
}
donate.component.html
<form [formGroup]="donateForm"#formDir="ngForm">
<div [hidden]="formDir.submitted">
<div class="form-group">
<label for="zip">Zip code</label>
<input formControlName="zip" name="zip" type="text" class="form-control form-control-sm" id="zip" required>
<div *ngIf="zip.invalid && (zip.dirty || zip.touched)"
class="alert alert-danger">
<div *ngIf="zip.errors?.['required']">Billing zip code is required.</div>
</div>
</div>
</div>
<!-- submit button removed for demo -->
</form>
第一个 ngIf 测试 zip.invalid 是否有效,因此 zip 属性似乎不是问题。使用 zip.errors 本身而不查询 errors 数组可以编译,但如果我们不是在寻找特定类型的错误,那么它就没有帮助。它似乎对我使用问号和数组感到犹豫。既然代码示例使用了该语法,为什么我的会坏掉?
【问题讨论】:
标签: angular validation