angular - “字符串”类型不存在属性“错误”
问题描述
我该如何解决这个错误?如果我将变量设为 null,它似乎会消失,但它只会产生另一个类似的错误。
“字符串”类型不存在属性“错误”。
我想要的只是使用 Angular ValidatorngClass
并向我的表单组添加一个常规类,这样我就可以在它的子级上使用它ng-invalid
,ng-touched
等等。这*ngIf
也不起作用。我假设它是相关的。
HTML
<form [formGroup]="aervform" id="aervform" #aervForm="ngForm">
<div class="row">
<div class="col">
<!-- [ngClass]="{
'is-invalid':
aervform.get('membersName').errors
&& (
aervform.get('membersName').touched
||
aervform.get('membersName').dirty
)
}" -->
<div
class="form-group mb-2"
[ngClass]="{
'is-invalid':
membersName.errors
&& (
membersName.touched
||
membersName.dirty
),
'is-valid':membersName.valid
}">
<label for="membersName" class="form-label">Member's Name</label>
<input
type="text"
name="membersName"
[(ngModel)]="membersName"
formControlName="membersName"
class="form-control"
id="membersName"
required
/>
<span>Is it touched?: </span>{{this.aervform.controls.membersName.touched}}<br/>
<span>Is it dirty?: </span>{{this.aervform.controls.membersName.dirty}}<br/>
<span>Is it valid?: </span>{{this.aervform.controls.membersName.valid}}<br/>
<div
class="is-invalid"
*ngIf="membersName.errors && (membersName.touched || membersName.dirty)">
Field is required.
</div>
</div>
</div>
</div>
</form>
零件
@Component({
selector: "my-app",
templateUrl: "./app.component.html",
styleUrls: ["./app.component.css"]
})
export class AppComponent {
name = "Angular " + VERSION.major;
aervform: FormGroup;
membersName: string = "";
constructor(private fb: FormBuilder) {}
ngOnInit() {
this.aervform = this.fb.group({
membersName: ["", [Validators.required]]
});
}
}
这是一个StackBlitz,谢谢
解决方案
在 app.module 中,您需要导入正确的模块
import { ReactiveFormsModule } from "@angular/forms";
然后在输入字段上使用
formControlName="membersName"
要访问 FormGroup 中的字段(以显示错误消息),您需要完整路径。不仅仅是一个字段名称,如formControlName
工作堆栈闪电战
推荐阅读
- json - 使用带有外部命令的 jq 修改 json 中的键值
- pointers - 仅更改一个字节的 2 位 (8051)
- python - 如何使用 Python 生成 HTML 报告?
- javascript - 如何从localStorage附加后显示的html获取div数据?
- angularjs - 如何控制/预防
- visual-studio-code - 如何在 ibm 区块链平台 VScode 上创建自定义结构环境
- python - 用于 py35 和 py36 而不是通用 py3 的 Python 轮子生成
- c - 为什么它可以在windows下运行,而在linux下不行?
- ruby - 运行 ruby-2.3.1@rubinius/rake install --trace' 时出错
- python - 在张量流中,如何在 y 上使用 tf.where() 从 x 中选择 x 和 y 具有不同形状的行?