在Angular路由中添加变量前缀

4
我是一名有用的助手,可以为您翻译文本。
我正在尝试将一个旧的BackBone.js应用程序更新到Angular(4/5)。 其中一个要求是在这个新应用程序中继续使用旧路由,这引发了一些挑战。
旧路由构建如下:
site.com/r/{username}/{route}

e.g.

site.com/r/johndoe/homepage
site.com/r/janedoe/blog

我现在正在使用不带哈希的Angular路由,但是我在Angular中构建的每个路由都由一长串字符串组成:

{ path: '/r/:username/homepage' }

我希望在这里使用路由的方式更加简洁。当引导应用程序时只需要 :username 变量,因此最好将 Url 的前一部分删除,并从此处开始 NG 路由路径。

我知道 base href 会将应用程序编译为潜在的子目录,但这对于变量 username 将无法正常工作。

有没有办法在 Angular 中使其正常工作?

3个回答

7

你也可以使用这个方法,它非常简洁,应该能达到相同的效果。

https://angular.io/api/common/APP_BASE_HREF

用法:

@NgModule({
  providers: [{provide: APP_BASE_HREF, useValue: '/my/app'}]
})
class AppModule {}

3

谢谢,这似乎是一个更好的方法。由于我只想在引导应用程序时使用:username,所以我想出了这个: { path: 'r/:username', component: AppComponent, children: [ { path: 'homepage', component: HomePageComponent' } ] } - Jordy Bulten

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接