angular - 角度形式不采用初始值
问题描述
在我创建的表单中,输入将预设为来自{{userPrivate.email}}
它显示在表单上,但是当我尝试不加修改地提交时,它显示其中的值是空的,除非我尝试更改它。
我想让它即使字段不变,我仍然可以使用 userPrivate.email 的值提交它
这是html
<div class="card">
<div *ngIf="(user$ | async) as user" class="card-body">
<div class="row" *ngIf="(userPrivate$ | async) as userPrivate">
<form (ngSubmit)="this.updateEmail(password.value, email.value)" class="container" [formGroup]="changeEmail">
<mat-form-field>
<input matInput type="text" placeholder="New Email" formControlName="email" value="{{userPrivate.email}}" >
</mat-form-field>
<button mat-raised-button type="button" class="mb-3" (click)="verifyEmail()" *ngIf="!userEmail">
<span *ngIf="!loading">Update Email</span>
<i class="fa fa-spinner fa-spin" *ngIf="loading"></i>
</button>
<mat-form-field *ngIf="userEmail">
<input matInput type="text" placeholder="Password" formControlName="password" >
</mat-form-field>
<button mat-raised-button type="submit" class="mb-3" *ngIf="userEmail">
<span *ngIf="!loading">Confirm</span>
<i class="fa fa-spinner fa-spin" *ngIf="loading"></i>
</button>
</form>
</div>
</div>
</div>
和我在 ts 中调用的函数
ngOnInit() {
this.changeEmail = this.fb.group({
email: ['', [
Validators.required,
Validators.email
]],
password: ['',
Validators.required
]
});
}
// Use getters for cleaner HTML code
get email() { return this.changeEmail.get('email')}
get password() { return this.changeEmail.get('password')}
verifyEmail() {
this.userEmail = true;
}
updateEmail(password, email) {
this.loading = true;
debounceTime(300);
this.authService.changeEmail(password, email).then(() => {
this.loading = false;
this.userEmail = false;
});
}
解决方案
您正在为 init 上的控件分配空值
email: ['', [
Validators.required,
Validators.email
]],
创建表单时尝试为控件中的第一个参数提供数据
推荐阅读
- appium - 开始检查或开始测试的 Appium 客户端应用程序问题
- python - 熊猫数据框:有没有办法将列转换为熊猫中的行值
- lean - 如何轻松地将 nat.succ (nat.succ 0) 重写为 2?
- python - 在 Python 中对元组列表进行排序,其中元组是列表
- windows - 无法使用 SSH 连接到服务器,在 Windows 10 中显示“ssh:连接到主机 178.128.60.26 端口 22:连接超时”
- python - 如何使用 Flask-Mail 发送 csv 文件
- javascript - 更改 $_Get 值而不重新加载整个页面内容
- javascript - 查找第一个外部标签内的所有标签
- c - 关于如何为 Linux 字符设备驱动程序设置文件操作的困惑
- java - 在 Windows 上使用 cmd 运行文件