当我使用this.programTypeForm.setValue(programType)将响应值设置为FormGroup varriable(programTypeForm)时,我得到了错误 “找不到名称为:CreatedOn的表单控件。”在Subscriber.js文件中
this.programTypeForm = this.fb.group({
VersionNumber:[null],
ProgramTypeID: [null],
ProgramTypeName: [null, Validators.required],
ProgramTypeEnglishName: [null, Validators.required],
OrganizationID: [null],
OrganizationHierarchyID: [null],
LanguageID: ["Asdf"],
UserID: [11],
CurrencyID:["Asdasd"]
});
if(this.programTypeId>0)
{
// alert(this.programTypeId);
this._userService.get("ProgramType/getProgramTypeDetailById/" + this.programTypeId)
.subscribe(programType => {
alert(programType.VersionNumber);
this.programTypeForm.setValue(programType);
console.log(programType);
},
error => this.msg = <any>error);
}
答案 0 :(得分:0)
正如评论中所提到的,您的传入响应似乎具有属性CreatedOn
,该属性未包含在您的表单中,因此出现错误。如果您只想从回复中选择特定属性,可以将setValue()
修改为以下内容:
this.programTypeForm.setValue({
VersionNumber: programType.VersionNumber, // here assuming the propertynames match...
ProgramTypeID: programType.ProgramTypeID,
// ... rest omitted
});
答案 1 :(得分:0)
您可以使用patchValue
而不是setValue
。像这样:
this.programTypeForm.patchValue(programType);