我目前面临着一个奇怪的问题,即mat芯片列表和输入。我有一个表单组,它有两个表单控件:contacts和name。
this.form = this.formBuilder.group({
name: ['', [Validators.required]],
contactIds: ['', [Validators.required]]
})
此窗体的视图如下所示:
<mat-form-field #contactsChipList>
<mat-chip-list>
<mat-chip *ngFor="let contact of contacts" [removable]="removable" (remove)="removeChipListItem(contact)">
{{ contact.name | titlecase }} {{ contact.surname | titlecase }}
<mat-icon matChipRemove *ngIf="removable"></mat-icon>
</mat-chip>
<input [matChipInputFor]="contactsChipList" placeholder="Contacts" formControlName="contactIds" />
<mat-error *ngIf="form.hasError('required', 'contactIds')">This field is required</mat-error>
</mat-chip-list>
</mat-form-field>
问题:当我从输入字段中删除所有元素时,父窗体(formGroup)被标记为无效,但formGroup的错误属性不包含任何值。所以错误永远不会出现。
其他尝试:但当我使用一个正常的输入元素,该元素具有matInput属性,但没有mat芯片列表时,当我删除输入字段的内容时,错误会正确显示。
在这种情况下,标记看起来是这样的:
<div class="form-group">
<mat-form-field>
<input matInput placeholder="Contacts" formControlName="contactIds" />
<mat-error *ngIf="form.hasError('required', 'contactIds')">This field is required</mat-error>
</mat-form-field>
</div>
假设:我现在认为问题在于mat芯片列表元素。我试图研究:@Input()errorStateMatcher:errorStateMatcher
,但我还不知道如何使用。谷歌对这种搜索并不友好。
有没有人经历过这个问题?如果你需要澄清,请告诉我。
您应该在
组成部分:
export class ExampleComponent {
items = [];
emailFormControl = new FormControl('', [Validators.email]);
addItem(event) {
if (this.emailFormControl.valid) {
items.push(event.value)
}
}
.
.
.
}
模板:
<mat-form-field>
<mat-chip-list [formControl]="emailFormControl">
.
.
.
</mat-chip-list>
</mat-form-field>
<mat-form-field>
<mat-chip-list ngDefaultControl [formControl]="form.controls.contactIds">
.
.
.
<mat-error *ngIf="form.controls.contactIds.hasError('required', 'contactIds')">This field is required</mat-error>
</mat-chip-list>
</mat-form-field>
我在使用角材料时遇到了一些问题,我尝试了很多解决方案,但都不起作用。这就是我想做的: 我正在使用带有反应形式的角材料制作一个表单,在我添加组件之前,一切都很好。这是我得到的 错误:mat form字段必须包含MatFormFieldControl。 这是我的代码: HTML: 组件: 模块: 我导入了模块以便Angular Material可以正常工作,实现了表单控件名称,但仍然得到了相同的。我尝
我使用的是角材料6,我有一个值,当移动到正确显示的垫子误差后,垫子误差未显示。 不工作代码: 工作罚款: 有人解释了为什么在该控件内不起作用。 现场演示:stackblitz
Stackblitz示例链接 我正在使用角材料-垫-自动完成内部形式。我想显示红色高亮文本和边框颜色的输入字段&mat-matautoComplete输入错误消息时,表单无效。建议反应或模板驱动的形式将起作用
我想突出显示点击的选定值的背景颜色。我正在演示这个例子,它突出显示了多个选择值。我想在单击以选择一个选项时只突出显示所选的值。
我试着用angular-6中的angular材质 我的材料。单元ts是这样的 它正在给出错误 请帮帮我
我正在使用angular 8.0.0,angular material和Fuse主题作为管理面板。问题是,每当我更改mat-select的样式时,它就会被应用,但在一两次刷新后,角度材质会覆盖本地组件更改并应用默认的。 它也会应用到所有组件,我如何才能只更改一个mat-select的样式? 我的html中有问题的部分: scss文件: } 尝试了stackoverflow的所有建议,但似乎无法改变