我有一个使用ngForm创建的表单,没关系。但是我需要恢复保存的信息。
ngOnInit() {
this.budgetId = this.activatedRoute.snapshot.params['id'];
if (this.budgetId) {
this.budgetService.detailBudget(this.budgetId).subscribe(res => {
this.orders = res.budget.orders;
for (let [key, value] of Object.entries(res.budget)) {
this.budgetForm.value[key] = value;
}
})
}
}
但是“ budgetForm”是:
<form #budgetForm="ngForm" (ngSubmit)="onSubmit(budgetForm)" novalidate>
但是,错误
TS2339: Property 'budgetForm' does not exist on type 'BudgetRegisterComponent'.
我如何在表格上设置值?
答案 0 :(得分:0)
您似乎没有对表格的引用:
@ViewChild('budgetForm') NgForm budgetForm;
您要在Submit方法中传递budgetForm
,并且在运行ngOnInit
时,budgetForm
是不确定的。
检查是否为空:
ngOnInit() {
this.budgetId = this.activatedRoute.snapshot.params['id'];
if (this.budgetId && this.budgetForm) {
this.budgetService.detailBudget(this.budgetId).subscribe(res => {
this.orders = res.budget.orders;
for (let [key, value] of Object.entries(res.budget)) {
this.budgetForm.value[key] = value;
}
})
}
}
答案 1 :(得分:0)
对于ngForm中的设置值,请使用setValue()方法
this.budgetForm.setValue(res.budget)
但是,在需要之前,让对象逐个字段等于表单。我使用mongo,然后需要删除:
delete res.budget.__v
delete res.budget.__proto__
例如,在使用setValue之前。
谢谢大家!