Я исследую Angular. Я пробую некоторые базовые c концепции, такие как маршрутизация, Observables (и подписка на них), создание HTTP-запросов и параметров маршрутизации. Я создал очень простой сценарий c, в котором я делаю HTTP-запрос GET к JSONPlaceholder для получения всех альбомов. Я создал сервис для этого. Я добавил:
<a [routerLink]="['albums', album.id]">{{album.title}}</a>
к названию альбома, когда я нажимаю на заголовок, я должен быть перенаправлен в детальный вид этого конкретного альбома. Я также покажу вам свой код, но я думаю, что stackblitz будет более значимым. Вот код:
album-detail.component.ts
import { Component } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { AlbumService } from './albums.service';
import { IAlbum } from './album';
@Component({
template: './album-detail.component.html'
})
export class AlbumDetailComponent {
album: IAlbum;
constructor(private _route: ActivatedRoute, private _albumService: AlbumService) {}
ngOnInit(): void {
const id=+this._route.snapshot.paramMap.get('id');
console.log("called for: "+id);
this.getAlbumById(id);
}
getAlbumById(id: number) {
this._albumService.getAlbumById(id).subscribe({
next: album => this.onAlbumRetrieved(album)
})
}
onAlbumRetrieved(album: IAlbum): void {
this.album = album;
}
}
album.module.ts
import { NgModule } from '@angular/core';
import { AlbumListComponent } from './albums-list.component';
import { BrowserModule } from '@angular/platform-browser';
import { RouterModule } from '@angular/router';
import { HttpClientModule } from '@angular/common/http';
import { AlbumDetailComponent } from './album-detail.component';
@NgModule({
imports: [
BrowserModule,
HttpClientModule,
RouterModule.forChild([
{path: 'albums', component: AlbumListComponent},
{path: 'albums/:id', component: AlbumDetailComponent},
])
],
declarations: [
AlbumListComponent,
AlbumDetailComponent
]
})
export class AlbumModule { }
Мой запрос на получение также успешен, но что-то не так с моей маршрутизацией:
![Screenshot of Mozilla DevTools with errors](https://i.stack.imgur.com/nkRK2.png)