gpt4 book ai didi

angular - 如何在 HTML 代码中访问 FormControl 值

转载 作者:行者123 更新时间:2023-12-04 13:18:40 25 4
gpt4 key购买 nike

我正在以编程方式更改“选择”表单的值。

在表单字段中,您可以看到值已更改。但是元素"p"仍然是隐藏的。

如果您手动更改表单的值,元素“p”的可见性将正常工作。

Expected Result:


The <p> tag should be visible if the value of `field1` FormControl is equal to `1`.

请告诉我,可能是什么问题?

组件.html
<form [formGroup]="formGroup">
<mat-form-field class="mb-4" fxFlex="100">
<mat-select #field1 formControlName="field1" placeholder="Data type" required>
<mat-option value="0" selected>Boolean</mat-option>
<mat-option value="1">Int</mat-option>
<mat-option value="2">Double</mat-option>
<mat-option value="3">String</mat-option>
<mat-option value="4">Byte array</mat-option>
<mat-option value="5">Object</mat-option>
</mat-select>
</mat-form-field>
</form>

<p *ngIf="field1.value === '1'">Integer</p>

<button mat-raised-button color="primary" (click)="onClick()">Set 'Int'</button>

组件.ts
export interface Item {
value: string;
viewValue: string;
}

@Component({
selector: 'select-overview-example',
templateUrl: 'select-overview-example.html',
styleUrls: ['select-overview-example.css'],
})
export class SelectOverviewExample {
public data: Item[] = [
{value: '1', viewValue: 'Option 1'},
{value: '2', viewValue: 'Option 2'},
{value: '3', viewValue: 'Option 3'}
];
public formGroup: FormGroup;

constructor(private _formBuilder: FormBuilder){

}

ngOnInit() {
this.formGroup = this._formBuilder.group({
field1: [1, null]
});
}

onClick(){
this.formGroup.controls.field1.setValue('1');
}
}

Example Stackblitz

最佳答案

而是 #template reference 变量,您可以使用:

formGroup.controls['field1'].value

所以 HTML 代码:
<p *ngIf="formGroup.controls['field1'].value === '1'">Integer</p>

关于angular - 如何在 HTML 代码中访问 FormControl 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56913419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com