Я отправляю объект поста от дочернего компонента к родительскому, где обращаюсь к сервису в нем записываю объект в переменную "edData", передаю ее в компонент редактирования, где присваиваю переменную с сервиса в переменную компонента
this.editData = this.galleryService.edData;
,что бы передать свойства объекта: "title" и "url" в ngModel, для дальнейшего редактирования элемента. Но получаю ошибку: Cannot read property 'title' of undefined"
Помогите пожалуйста решить эту проблему и понять, что делаю не так.
Передача объекта:editPost(pic: Picture): void {
this.edit.emit(pic)
}
Родительский компонент:editPost(pic: Picture): void {
this.galleryService.edit(pic);
this.collection = this.galleryService.getPictures();
}
Сервис:edData: Picture;
edit(pic: Picture): Picture {
return this.edData = pic;
}
update(title: string, url: string): void {
const id: number = this.edData.id;
this.Mycollection.forEach(post => {
if (post.id === id) {
this.edData.title = title;
this.edData.url = url;
}
});
}
ТС компонента редактирования:editData: Picture;
constructor( private galleryService: GalleryService) {
this.editData = this.galleryService.edData;
}
ngOnInit() {
this.collection = this.galleryService.getPictures();
this.editData = this.galleryService.edData;
}
updatePost(title: string, url: string): void {
this.galleryService.update(title, url);
this.collection = this.galleryService.getPictures();
}
Темплейт компонента редактирования:<input type="text" class="form-control" formControlName="titleEd" #titleEd
[ngModel]="editData.title"/>
<input type="url" class="form-control" formControlName="urlEd" #urlEd pattern="https?://.+"
title="Include http://" [ngModel]="editData.url"/>