禁用的属性不能以角电抗形式工作

时间:2019-06-12 14:00:16

标签: angular typescript angular-reactive-forms

我有一个角度反应形式的电子邮件字段,如果该表单处于编辑模式(与添加模式相对),我想禁用它。我正在使用

disabled: typeof user.user_id === 'string'

如果我在下面的modelToForm方法的开头设置一个断点并将typeof user.user_id === 'string'粘贴到控制台中,它将返回true,因此看起来应该可以使用,但是表单中的字段是未禁用。如果我将其更改为“禁用:true”,则该字段为禁用。有人遇到过这个吗?

    public modelToForm(user: UserModel): FormGroup {
        return this.fb.group({
            firstName: [user.first_name, [
                Validators.required,
                Validators.maxLength(UserFormHelper.maxLengthName),
                UserFormHelper.validateWhitespace
            ]],
            email: [{value: user.email, disabled: typeof user.user_id === 'string'}, [
                Validators.required,
                Validators.maxLength(UserFormHelper.maxLengthEmail),
                Validators.pattern(UserFormHelper.emailPattern)
            ]],
        });
    }

1 个答案:

答案 0 :(得分:0)

我想我明白了!在表单初始化中禁用设置是静态的吗?您需要在条件变化时手动进行更改吗?

control.disable()
control.enable()