Обновление мета-тегов для SEO с использованием универсального углового

Я создаю угловой универсальный + угловой веб-сайт 2 и хочу добавить кнопку "Поделиться в социальных сетях". Я реализовал рендеринг на стороне сервера, а также обновил необходимые метатеги, используя следующий код:

 constructor(private dataService: DataService,
private activatedRoute: ActivatedRoute,
private auth: AuthService,
private router : Router,
private meta : Meta) {

this.currentUrl = window.location.href;
// testing if it changes something to add that outside of the service : it didnt
this.meta.updateTag({ property: 'og:title', content: "my new title" })



let id= this.activatedRoute.snapshot.paramMap.get('id');
this.dataService.getDataById(id).snapshotChanges().take(1)
.switchMap(result => {

console.log("slug switchmap")
let payloadValue = result[0].payload.val();

// facebook meta 
this.meta.updateTag({ property: 'og:url', content: this.currentUrl })
this.meta.updateTag({ property: 'og:title', content: payloadValue.title })
this.meta.updateTag({ property: 'og:description', content: payloadValue.description })
this.meta.updateTag({ property: 'og:image', content: 
 payloadValue.photoUrl })


return result;
})
 .subscribe(params => {

console.log(params)



    });
}

Я использую firebase в качестве своего хостинга, и обмен не работает (он просто делится с введенным мною значением по умолчанию) . интересная часть: если я проверяю элемент в браузере, я вижу обновленные метатеги, но если просматриваю исходный код страницы, я вижу значение по умолчанию для моих тегов, а не обновленное. Есть идеи, как динамически обновлять метатеги?

Обновление: я думаю, что проблема заключается в том, что функция конструктора заканчивается до вызова метода подписки, который получает значения для мета-концов. И как только конструктор готов, я не думаю, что вы можете изменить метатеги. есть ли способ обойти это?

0 ответов

Другие вопросы по тегам