【发布时间】:2017-12-09 17:43:45
【问题描述】:
我有一个基本的 Angular 组件,当用户进入个人资料并点击“编辑”时,它允许某人编辑用户的详细信息。
组件:
export class EditUserComponent implements OnInit {
// Define our vars
user: Users[];
editUserForm: FormGroup;
message: {};
displayMessage = false;
userID: number;
errorMessage: any = '';
constructor(
private fb: FormBuilder,
private _userService: UserService,
private activatedRoute: ActivatedRoute
) {
}
ngOnInit(): void {
// Get the userID from the activated route
this.activatedRoute.params.subscribe((params: Params) => {
this.userID = params['id'];
});
// Call our service and pass the UserID
this._userService.getUser(this.userID)
.then(res => {
this.user = res;
this.createForm();
});
}
// Generate the form
createForm() {
this.editUserForm = this.fb.group({
QID: ['', Validators.required],
favoriteColor: [''],
favoriteNumber: [''],
favoriteActor: ['']
});
}
}
服务:
// Fetch a single user
getUser(userID: number) {
return this._http.post(this.baseUrl + '/fetchUser', { "userID": userID }, { "headers": this.headers })
.toPromise()
.then(res => res.json())
.catch(err => { this.handleError(err); });
}
界面:
export interface Users {
RecordID?: number;
QID: string;
favoriteColor?: string;
favoriteNumber?: number;
favoriteActor?: string;
}
我正在尝试将值传递给我的 formGroup,但我无法弄清楚如何访问这些值。
我以为我可以做这样的事情,我可以访问用户模型并从中选择一个属性,但这会引发未定义的错误。
我是在表单组中传递值还是以某种方式直接将它们绑定到元素?我可以很好地从服务接收数据,只是不确定如何将每个值返回到各自的字段。
createForm() {
this.editUserForm = this.fb.group({
QID: [this.user.QID, Validators.required],
favoriteColor: [''],
favoriteNumber: [''],
favoriteActor: ['']
});
}
【问题讨论】:
标签: javascript angular