gpt4 book ai didi

angular - 如何将输入字段的默认值绑定(bind)到变量?

转载 作者:太空狗 更新时间:2023-10-29 17:42:46 29 4
gpt4 key购买 nike

在我的 Angular 应用程序的 UI 中单击某个按钮时,会打开一个对话框,用户可以在其中更新他/她的个人信息。为了简单起见,我将以下代码限制为他/她的用户名。也就是说,我假设用户只能在对话框中更改他/她的用户名。

打开对话框的代码如下:

openDialog() {

this.dialog.open(UpdatePersonalDataComponent , {data: {
firstName: this.firstName,
username: this.username
}
});

}

文件 update-personal-data.component.ts 如下所示:

import { Component, OnInit, Inject } from '@angular/core';
import { MAT_DIALOG_DATA } from '@angular/material';


@Component({
selector: 'app-consultants-update-dialog',
templateUrl: './consultants-update-dialog.component.html',
styleUrls: ['./consultants-update-dialog.component.css']
})
export class UpdatePersonalDataComponent implements OnInit {


constructor(@Inject(MAT_DIALOG_DATA) public data: any) { }

ngOnInit() {

}

}

文件 update-personal-data.component.html 目前看起来如下:

<form #f="ngForm" (ngSubmit)="onSubmit(f)" fxLayout="column" fxLayoutAlign="center center"> 
<h1 mat-dialog-title>Hi, {{ data.firstName }}. Update your username below.</h1>
<mat-dialog-content fxLayout="column" fxLayoutAlign="center">
<mat-form-field>
<input
matInput
ngModel
#userName="ngModel"
name="userName"
type="text"
value="{{data.username}}"
required>
</mat-form-field>
<mat-dialog-content
<mat-dialog-actions>
<button mat-raised-button color="primary" [mat-dialog-close]>Cancel</button>
<button type="submit" mat-raised-button color="primary" [mat-dialog-close] [disabled]="f.invalid">Submit</button>
</mat-dialog-actions>
</form>

如您所见,我想使用以下代码将输入字段的默认值设置为旧用户名:

value="{{data.username}}"

但是,这是行不通的。输入字段为空。我也尝试了其他几种方法(例如 [value]="{{data.username}}")但没有任何效果。有人知道如何将输入字段的默认值设置为等于变量 data.username 的值(已传递给对话框)吗?

最佳答案

我认为更好的方法是使用 ReactiveForms 模块的 FormGroup。像这样。

在您的组件中。

 public form: FormGroup = new FormGroup({
userName: new FormControl(''),
});

在你的 HTML 中

<form [formGroup]="form">

<mat-form-field class="full-width">
<input autocomplete="off" required matInput
formControlName="userName" placeholder="Username">
</mat-form-field>

</form>

现在,您可以控制您的 FORM 来执行此操作。

this.form.setValue({
userName: YOUR_VALUE,
});

关于angular - 如何将输入字段的默认值绑定(bind)到变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50867824/

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