#angular #typescript
Вопрос:
Мне нужно подключить мои данные с сервера к моей группе форм, я использую этот код
this.fg.controls.treeInfoModel.patchValue({ treeORpolygonID: value.treeInfoModel['treeORpolygonID'] , quantityOfTrees: value.treeInfoModel['quantityOfTrees'] , treeType: value.treeInfoModel['treeType'] , actionReasonID: value.treeInfoModel['actionReasonID'] , actionReasonDetails: value.treeInfoModel['actionReasonDetails'] , treeDiameter: value.treeInfoModel['treeDiameter'] , treeDiameter2: value.treeInfoModel['treeDiameter2'], treeDiameter3: value.treeInfoModel['treeDiameter3'] , treeHigh: value.treeInfoModel['treeHigh'] , treeCanopy: value.treeInfoModel['treeCanopy'], treeHealth: value.treeInfoModel['treeHealth'] , treeLocation: value.treeInfoModel['treeLocation'] , treeTypeValue: value.treeInfoModel['treeTypeValue'] , rootProtectedArea: value.treeInfoModel['rootProtectedArea'] , treeValue: value.treeInfoModel['treeValue'] , copyFeasibility: value.treeInfoModel['copyFeasibility'] , closeUpImgGUID: value.treeInfoModel['closeUpImgGUID'] , areaImgGUID: value.treeInfoModel['areaImgGUID'] });
моя модель построена так:
export interface FOTreesDetailsModel { selectedType: number; //exempSurveyModel?: FOExempSurveyModel | undefined; foExempSurveyRequestModel?: FOExempSurveyRequestModel | {}; treeInfoModel?: FOTreeInfoModel | {}; }
`
но я получаю ошибку : ОШИБКА типа Ошибка: Не удается прочитать свойство ‘forEach’ значения null в FormArray.push../node_modules/@angular/forms/fesm5/forms.js.FormArray.patchValue
почему?
Комментарии:
1. Значение patchValue применяется к группе форм или к элементу управления формой. Вы уверены, что у вас есть группа форм «fg» со свойством «treeInfoMode», которая является группой форм при выполнении кода?
2. @Eliseo еще раз спасибо тебе! да, я уверен
3. Ошибка говорит о формаре, но я вижу это в коде. помните, что для использования значения пути в массиве форм, массивы форм должны содержать столько элементов, сколько вы используете в значении пути, например, является ли ваш «actionReasonDetails» массивом форм, «значением. treeInfoModel[‘actionReasonDetails’]» должен быть массивом с таким количеством элементов, чем actionReasonDetails-если вы должны создать
this.fg.get('treeInfoModel.actionReasonDetails')=new FormArray(value.treeInfoModel['actionReasonDetails'].map(x=gt;new FormControl(x))
или что-то вроде цикла для добавления элементов управления формой в свой массив форм4. @Eliseo хорошо, постараюсь, спасибо!!