【发布时间】:2019-04-23 12:26:00
【问题描述】:
当我提交我的角度表单时,我只获得更改字段的值。我应该得到正确的完整表单值吗?
// Profile.html
<form [formGroup]="profileForm" (ngSubmit)="submitProfileForm(profileForm.value)" #myform="ngForm">
<input type="text" class="form-control" id="firstName" value="{{currentUserMeta.firstName}}" formControlName='firstName'>
<input type="text" class="form-control" id="lastName" formControlName='lastName'value="{{currentUserMeta.lastName}}">
....
</form>
// Profile.ts
submitProfileForm(value: any) {
console.log(this.profileForm.get('firstName').value);
console.log(this.profileForm.get('lastName').value);
console.log(value);
this.userService.updateUserProfile(value);
}
例如,当我仅更改 about 输入字段然后按提交时,我会在输出中得到它。
{displayName: "", firstName: "", lastName: "", about: "12"}
firstName 和 lastName 具有值,它们是从可观察的 currentUserMeta
中获取的在我看来,表单不知道这些值何时通过角度绑定 {{ }} 更新。
另一个例子
形成初始状态(正确)
按 2 输入姓氏,按 3 输入 about 字段,然后按提交
如您所见,日志中不存在 firstName 值 1。甚至试图通过日志打印出来也行不通。
console.log(this.profileForm.get('firstName').value);
我应该补充一点,如果表单已经加载并且我一次或一次更新了所有输入,我将获得所有值(更改和未更改)。 (提交后我不会重定向到另一个页面)。如果我做错了什么,请告诉我。
【问题讨论】:
标签: angular observable angular-forms