Просто чтобы уточнить. Это угловое приложение заполняет данные для представления, но когда я перемещаюсь от одного компонента к другому, ловушка жизненного цикла ngOnInit, кажется, не вызывается, что означает, что список в представлении остается пустым. Когда я нажимаю f5 (обновляю), данные на той странице, где я нахожусь, заполняются, что означает, что сервис работает нормально. Может ли быть так, что проблема связана с жизненным циклом?
Итак, учитывая, что у меня есть следующая коллекция в файле product.service.ts
export class ProductsService {
private productsCollection:AngularFirestoreCollection<Product>;
private products:Observable<Product[]>;
constructor(private afs:AngularFirestore) {
//Code was removed from here as it is beyond the scope of the problem
//this.products is getting populated here successfully
}
getProducts(){
return this.products;
}
}
И я подписываюсь на метод из двух отдельных компонентов следующим образом (используя тот же точный код ниже)
constructor(private productService:ProductsService) { }
ngOnInit() {
this.productService.getProducts().subscribe(
products => {
this.products = products;
});
Таким образом, предполагая, что компонент A и компонент B оба имеют этот код, списки должны заполняться обоими компонентами при их загрузке. Когда я ввожу URL-адрес компонента, список заполняется, но когда я использую ссылки на маршрутизаторы, и данные не заполняются, и это похоже на то, как будто ngOnit не запускается при вызове нового маршрута. Оба представления показывают списки, но они не заполняются, когда я использую routerlink, в отличие от написания адреса или обновления страницы. Сервис доступен в app.module.ts в качестве провайдера. Некоторая помощь приветствуется.