有没有办法确定FormControl在angular中是否为只读
我的angular应用程序中有一个表单控件有没有办法确定FormControl在angular中是否为只读,angular,Angular,我的angular应用程序中有一个表单控件 const name = new FormControl('vikram'); 还有我的模板 <input type="text" formControlName="name" name="name" id="name" [attr.readonly]="true"/> “我的组件”中是否有任何方法可以确定此控件是否为只读?尝试以下操作: html <input type="text" #nameCtrl formContro
const name = new FormControl('vikram');
还有我的模板
<input type="text" formControlName="name" name="name" id="name" [attr.readonly]="true"/>
“我的组件”中是否有任何方法可以确定此控件是否为只读?尝试以下操作:
html
<input type="text" #nameCtrl formControlName="name" name="name" id="name" [attr.readonly]="true"/>
<input type="text" [formControl]="name" name="name" id="name" [attr.readonly]="readOnlyFlags['name'] = true" />
<input type="text" [formControl]="dob" name="dob" id="dob" [attr.readonly]="readOnlyFlags['dob'] = false" />
...
更新
解决方法是在ts中添加一个变量,该变量包含每个控件的只读属性:
ts
...
@ViewChild('nameCtrl', {static : true}) nameCtrl : ElementRef ;
ngAfterViewInit(){
console.log(this.nameCtrl.nativeElement.getAttribute('readOnly')) ;
}
...
readOnlyFlags = {} ;
html
<input type="text" #nameCtrl formControlName="name" name="name" id="name" [attr.readonly]="true"/>
<input type="text" [formControl]="name" name="name" id="name" [attr.readonly]="readOnlyFlags['name'] = true" />
<input type="text" [formControl]="dob" name="dob" id="dob" [attr.readonly]="readOnlyFlags['dob'] = false" />
...
最后,检查每个表单控件的readOnly属性,如下所示:
{
name : true,
dob : false
}
readOnlyFlags['control_name']
您可以使用ViewChildren获取组件中的所有“formControls”
@ViewChildren(NgControl,{read:ElementRef}) controls:QueryList<ElementRef>
无论如何,对我来说是个奇怪的问题。通常您使用
[attr.readonly]=“variable”
,所以您只需要询问变量。您可以将表单中任何控件的值获取为this.myform.get('nameOfFomControl').value
,如果禁用了控件,则需要使用this.myform.getRawValue()值
只读:您想读取数据而不是编辑吗?我有FormControl
的编号,我想从not readonly FormControl
读取值,尝试查看name
是否禁用了属性。我想这就是你所需要的。看,目前你想在某些情况下将输入设置为只读,你可以在TS文件中检查相同的情况,并找出哪个是只读的formcontrols。我有一些form Controls,我无法完全做到这一点