如何使角只读一个formControl如何使formControl只读
我知道我能做到这一点的HTML像
<input type="text" formControlName="xyz" readonly />
如何从JS代码做到这一点,在一个不是HTML即模型驱动方式
如何使角只读一个formControl如何使formControl只读
我知道我能做到这一点的HTML像
<input type="text" formControlName="xyz" readonly />
如何从JS代码做到这一点,在一个不是HTML即模型驱动方式
我们可以使用任何html属性并使用[]
以角度绑定它。
所以,你可以使用属性readonly
属性结合在控制
e.g
<input type="text" formControlName="xyz" [readonly]="anyBooleanPropertyFromComponent" />
你可以(应该)禁用由SE组件的控制,由HTML非。
this.form.get('controlName').disable();
标签上使用readonly
会产生安全问题的警告。
这将使控制值不可用在this.myForm.value –
是的。但是,您可以获得原始表单值,并通过这种方式可以获得该控件的值。使用myForm.getRawValue()。所以,你可以这样做:const formValue = Object.assign(myForm.getRawValue(),myForm.value); –
使用禁用有其他含义,我认为readonly更适合输入。更多信息:https://stackoverflow.com/questions/7730695/whats-the-difference-between-disabled-disabled-and-readonly-readonly-for-ht/7730719#7730719 – Anthony
如果使用无表单,您可以指定它动态地像 下面的示例代码(电子邮件域)
this.registerForm = this.formBuilder.group({
first_name: ['', Validators.required],
last_name: ['', Validators.required],
email: new FormControl({value: null, disabled: true}, Validators.required),
password: ['', Validators.compose([Validators.required, Validators.email])],
confirm_password: ['', Validators.required],
});
如果你想获得的所有,包括你应该禁用的控件的值使用:
this.registerForm.getRawValue();
享受编码!
您可以通过'this.form.controls.name.disable({onlySelf:true});'设置**禁用**,但是到目前为止我没有发现任何“只读”。 – Pengyy
这里是一个相关的问题: https://github.com/angular/angular/issues/11447,似乎现在没有提供。 – Pengyy