繁体   English   中英

angular 无功 forms 禁用场

[英]angular reactive forms disable field

我有一个简单的反应形式,我正在使用 Angular 材料框架。

this.firstFormGroup = this.fb.group({
            builder_first_name: ['', Validators.required],
            builder_last_name: ['', Validators.required]
        });

并编辑正在保存此数据的 function。

handleEdit(event): void {
    event.preventDefault();
    this.firstFormGroup.markAllAsTouched();
    if (!this.firstFormGroup.valid) {
        return;
    }
    this.mySerivce.update(this.firstFormGroup.value, this.project.id)
}

我想为某些用户设置一个只读的last_name字段。 但是在我添加了简单的逻辑之后:

builder_last_name: [{value: '', disabled: currentUser$.isAdmin ? false : true}, Validators.required]

我注意到this.firstFormGroup.valid现在返回 false。

我读了这个话题: https://github.com/angular/angular/issues/11432

但我仍然没有找到好的解决方案如何处理这一切。 我尝试了readonly属性,但是如何处理应用于已禁用的mat-字段的<select>和 styles?

感谢@Eliseo。

当我将条件更改为this.firstFormGroup.invalid时,一切都按预期工作。 我还将this.firstFormGroup.value更改为this.firstFormGroup.getRawValue()以确保正确捕获所有字段值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM