I'm working on an Angular SSR application and I'm facing a problem with updating Open Graph meta tags after receiving content from the API, because in another component that updates directly (without consuming the API) there is no problem.
Where is the error?
Here's a simplified version of my code:
ngOnInit(): void {
this.metadataService.removeTags(); // Removing existing tags
// ... (other initialization code)
if (this.reNumber.test(sumarioId) && Number(sumarioId) > 0) {
this.artigoService.GeArticle(sumarioId).subscribe({
next: (res: Artigo) => {
if (res != null) {
this.artigo = res;
// ... (other processing)
this.updateMetaDataArticle();
}
},
// ... (error and complete handlers)
});
}
}
private updateMetaDataArticle(): void {
let meta: PageMetaData = new PageMetaData();
// ... (other meta data setup)
meta.title = this.artigo?.manuscriptTitle as string;
meta.description = this.artigo?.abstract as string;
if (this.metadataService) {
this.metadataService.updateMetadata(meta);
// ... (other actions)
}
}
public updateMetadata(metadata: Partial<PageMetaData>): void {
// ... (other metadata updates)
this.metaTagService.addTags([
{ property: 'og:title', content: metadata.title },
{ property: 'og:description', content: metadata.description }
// ... (other meta tags)
], false);
}
public removeTags(): void {
if (!this._platform.isBrowser) return; // Avoid processing during server-side rendering
this.metaTagService.removeTag('property="og:title"');
this.metaTagService.removeTag('property="og:description"');
// ... (other tag removals if relevant)
}
Verion Angular:
Angular CLI: 17.0.8
Node: 20.10.0
Package Manager: npm 10.2.5
OS: win32 x64