错误:无法在Angular中找到名称为:CreatedOn的表单控件

时间:2017-10-04 08:43:06

标签: angular

当我使用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);
       }

2 个答案:

答案 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);