Rah*_*gli 6 angular-material angular
我正在使用带有 Angular Material 设计的反应式表单组。但是,我收到一个错误:
错误类型错误:无法读取未定义的属性“无效”
指向这行代码:
<input formControlName="fieldName" ngDefaultControl matInput placeholder="Field Name">
<mat-error *ngIf="fieldName.invalid">
Field name is required
</mat-error>
Run Code Online (Sandbox Code Playgroud)
TS:
export class AddFieldComponent implements OnInit {
form: FormGroup;
constructor(public fb: FormBuilder) {
this.form = this.fb.group({
fieldName: ['', Validators.required],
fieldType: ['', Validators.required]
});
}
}
Run Code Online (Sandbox Code Playgroud)
HTML
<div [formGroup]="form" class="add-field">
<div mat-dialog-content>
<h2>Add Fields</h2>
<mat-form-field>
<input formControlName="fieldName" ngDefaultControl matInput placeholder="Field Name">
<mat-error *ngIf="fieldName.invalid">
Field name is required
</mat-error>
</mat-form-field>
<mat-form-field>
<mat-select formControlName="fieldType">
<mat-option value="text-field">Text Field</mat-option>
<mat-option value="radio-btn">Radio Button</mat-option>
</mat-select>
</mat-form-field>
</div>
<div mat-dialog-actions>
<span class="right-align-next-element"></span>
<button class="secondary-btn" mat-button (click)="closeModal()">Cancel</button>
<button [disabled]="fieldName.invalid" class="primary-btn" mat-button (click)="addFields()" cdkFocusInitial>Add field</button>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
您有两个选择。
选项1
使用 div 或 span 包裹元素并进行以下检查
*ngIf="fieldName && fieldName.invalid"
Run Code Online (Sandbox Code Playgroud)
选项2
始终使用:
fieldName?.invalid
Run Code Online (Sandbox Code Playgroud)
当你想访问fieldName的无效属性时
| 归档时间: |
|
| 查看次数: |
12852 次 |
| 最近记录: |