如何使角只讀一個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