私はWebアプリケーションを持っています。私の右側のバーには私は3つの投稿があります。 私はポストをクリックすると、私はナビゲーションを持っている:Angular ngOnInit - リフレッシュが必要
this.router.navigate(['../post', this.post.id]);
あり、ポスト・プロファイル・コンポーネントが引き継ぎます。 このコンポーネントには、指定されたIDを持つ投稿を取得するサービスから関数を呼び出す関数があります。今私は自分のコンテンツ領域(画面の左側)にその投稿のすべての詳細を表示します。この機能(自分の投稿を取得する)は、Post ProfileコンポーネントのngOnInitでのみ呼び出されます。
右側のサイドバーから別の投稿をクリックすると、URLの変更が表示されますが、投稿を取得する機能は呼び出されず、コンテンツ領域の投稿の詳細は変更されません。 私は今、私が望む投稿を見ることができるページをリフレッシュすると、すべてうまくいきます。
私はそれが役立つ場合、私の機能を購読しています。
私は問題を見ることができません。
これは私のPostProfileComponentあなたが観測ActivatedRoute
params
に加入してきたあなたのPOSTプロファイルコンポーネントのngOnInit法で
constructor(postsService: PostsService, route: ActivatedRoute) {
this.postsService = postsService;
this.routeSubscription = route.params
.subscribe((params: any) => {
this.postId = params['id'];
});
}
public getPostById(id: any): void {
this.postsService.getPostById(id)
.map((response: Post) => {
this.post = response;
console.log(this.post);
})
.catch((error: any) => {
return error;
})
.subscribe();
}
ngOnInit(): void {
this.getPostById(this.postId);
}
実際のコードを表示する必要があります。コードの外観は誰も推測できません。 [最小限で完全で検証可能なサンプルの作成方法](https://stackoverflow.com/help/mcve) – Alex