Задать вопрос
@kikosko

Почему ngModel не видит перменную?

Я отправляю объект поста от дочернего компонента к родительскому, где обращаюсь к сервису в нем записываю объект в переменную "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"/>
  • Вопрос задан
  • 58 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы