我在Angular Universal中更新元数据标签时遇到问题。 我似乎找不到任何文档可以为我澄清这一点。 我有这种方法:
private setTitleAndMetadata() {
console.log(this.category);
let title = 'Pick your best ' + this.category;
let description = 'Pick your best ' + this.category + ' in less than a minute.';
this.title.setTitle(title);
this.meta.addTag({ name: 'description', content: description });
this.meta.addTag({ name: 'og:title', content: title});
this.meta.addTag({ name: 'og:description', content: description });
this.meta.addTag({ name: 'twitter:title', content: title });
this.meta.addTag({ name: 'twitter:description', content: description });
}
我的索引页面上已经有其他meta标签。 在主视图中,使用 ngOnInit 方法的位置是我的 setTitleAndMetadata ,如下所示:
ngOnInit() {
this.setTitleAndMetadata();
}
使用Facebook共享调试器时:
https://developers.facebook.com/tools/debug/sharing/
我可以看到我的元数据很好。但是,在下一页,我将 setTitleAndMetadata 放在 ngAfterViewInit 中,因为我需要一些信息,看起来像这样:
ngAfterViewInit() {
this.routeSubscription = this.route.paramMap.subscribe(paramMap => {
this.path = paramMap.get('path');
this.categoryId = paramMap.get('category');
this.singularize();
this.setTitleAndMetadata(); // Has to be here to singularize the category
});
}
如果检查文档,则可以看到正确的元数据。但是,如果我查看源代码,那是不正确的。要在特定位置工作才能正常工作吗?