我正在使用Contentful和Angular 5创建一个应用程序。它一切正常,但点击博客时的URL使用/ blog / id,我需要它/ blog / title或/ blog / urlslug。这就是它的样子:
http://localhost:4200/blog/Q4YkPptlwAQ0wCIo4oAcI
路由按如下方式完成:
getOneBlog(blogID): Promise<Entry<any>>{
return this.client.getEntries(Object.assign({
content_type: 'blog'
}, {'sys.id': blogID}))
.then(res => res.items[0]);
}
goToBlogDetailsPage(blogId) {
this.router.navigate(['/blog', blogId]);
}
和:
{path: 'blog/:id', component: BlogDetailsPageComponent}
有没有人以前处理过这个?我在内容模型中添加了一个url slug到我的内容模型,但是我不知道如何在其中一个函数中访问url slug。
答案 0 :(得分:0)
您可以Location from @angular/common更改带有样式值的网址。
例如,在您的组件中,加载博客文章后,您可以在ID之后添加标题,如下所示:
this._location.go(this.blogTitle);
你会有一个像http://localhost:4200/blog/Q4YkPptlwAQ0wCIo4oAcI/someBlogTitle
这样的网址。