Я добавляю пост , используя метод getPictures() в компоненте GalleryComponent (это родительский компонент),«post.id» которого больше 10, первым в списке, а все остальные посты «post.id» которых меньше 10 добавляю по очереди. Я делаю это, используя условие в методе getPictures (), но когда я удаляю пост, то добавляется то количество постов, ID которых больше 10 и только после перезагрузки страницы , корректно удаляется ранее выбранный пост и те, что добавились после клика по кнопке удаления. Подскажите как правильно добавлять новый элемент первым в список, что бы не было этого бага. Помогите пожалуйста решить эту проблему
Код родительского компонента GalleryComponent:export class GalleryComponent implements OnInit {
collection: Picture[];
constructor(private galleryService: GalleryService) {
}
ngOnInit() {
this.getPictures();
}
getPictures() {
this.galleryService.getPictures().subscribe((data: Picture[]) => {
data.forEach(post => {
if (post.id > 10) {
this.collection.unshift(post);
} else {
this.collection.push(post);
}
});
})
}
removePost(picId: number): void {
this.galleryService.remove(picId).subscribe(res => {
console.log('Deleted');
this.getPictures();
})
}
}
Шаблон родительского компонента GalleryComponent ссылка на компонент GalleryAddComponent:<a routerLink="/gallery-add" class="btn btn-outline-success tog">
Add New Post
</a>
Код дочернего компонента GalleryAddComponent:export class GalleryAddComponent implements OnInit {
isAdded: boolean = false;
constructor( private galleryService: GalleryService) {}
ngOnInit() {}
addPost(title: string, url: string): void {
this.galleryService.add(title, url).subscribe(res => {
this.isAdded = true;
});
}
}
GalleryService с запросами на сервер:export class GalleryService {
galleryUrl: string = 'http://localhost:5555/posts';
httpOptions: object = {
headers: new HttpHeaders({'Content-Type': 'application/json'})
};
constructor(private http: HttpClient) {}
getPictures(): Observable<Picture[]> {
return this.http.get<Picture[]>(`${this.galleryUrl}`);
}
remove(picId: number): Observable<Picture> {
return this.http.delete<Picture>(`${this.galleryUrl}/${picId}`, this.httpOptions);
}
add(title: string, url: string): Observable<Picture> {
const postObj = {
title,
url
};
return this.http.post<Picture>(this.galleryUrl, postObj, this.httpOptions);
}
}