javascript - 如何在 Angular 表单中设置字段值
问题描述
我正在尝试在 ngOnInit() 执行的 .ts 中填充“user_details”对象时设置视图字段值。
这是我填充 user_details 对象的 .ts 。
export class ProfileComponent implements OnInit {
user_details = {
name: '',
first_surname: '',
second_surname: '',
age: '',
birdth_date: '',
location: '',
phone: '',
image: ''
};
constructor(private authService: AuthService, private router: Router) { }
ngOnInit(): void {
this.authService.getProfile()
.subscribe(
res => {
this.user_details = res;
console.log(this.user_details)
},
err => console.log(err)
);
}
如您所见,该对象正在获取正确的数据。
这是我需要填写字段的表格。
<div class="container p-4">
<form (submit)="updateProfile()">
<div class="row d-flex justify-content-center text-white">
<div class="col-md-6">
<div class="form-group">
<label for="name">Name</label>
<input type="text" [(ngModel)]="user_details.name" value={{user_details.name}} name="name" class="form-control" id="name" placeholder="Name">
</div>
<div class="form-group">
<label for="first_surname">First surname</label>
<input type="text" [(ngModel)]="user_details.first_surname" name="first_surname" value={{user_details.first_surname}} class="form-control" id="first_surname" placeholder="First surname">
</div>
...
如何使用此对象数据设置视图字段的值?我需要在视图中显示“user_details”字段,而我的视图是空的。
解决方案
最好的方法是使用Reactive Forms,因为它提供了许多您可能需要在表单中使用的功能。我试图在代码沙箱中重新创建您的代码,请看一下,因为我能够解决它,
<div class="form-group">
<label for="first_surname">Name</label>
<input
type="text"
[(ngModel)]="user_details.name.first"
name="first_surname"
value="user_details.name.first"
class="form-control"
id="name"
placeholder="Name"
/>
推荐阅读
- sql - 在事件发生后的当天找到每种事件类型的平均值
- python - PushShift:从时间范围内抓取提交
- javascript - 之后添加 html-element 的动态函数调用
- javascript - 在 Angular + AngularFire 应用程序中登录后权限被拒绝
- angular - 带有角度 6 的 Smilesdrawer 未渲染(由于项目条件无法升级)
- css - Css - 当我点击它时如何让我的按钮产生点击效果
- memory - 不同集合实现的时间复杂度和内存需求
- java - Redisson解码随机类强制转换异常
- javascript - 在 DataTables 中使用的 HTML 下拉列表值以按它们排序
- r - 消除外边距 (Ggplot2 / geom_sf)