向角度路由添加变量前缀

Jor*_*ten 3 routing angular-routing angular

我正在尝试将旧的 BackBone.js 应用程序更新为 Angular (4/5)。要求之一是在这个新应用程序中继续使用旧路线,这引发了一些挑战。

旧路线构建如下:

site.com/r/{username}/{route}
Run Code Online (Sandbox Code Playgroud)

例如

site.com/r/johndoe/homepage
site.com/r/janedoe/blog
Run Code Online (Sandbox Code Playgroud)

我现在使用没有哈希的 Angular 路由,但是我在 Angular 中构建的每条路由现在都包含一个长字符串:

{ path: '/r/:username/homepage' }
Run Code Online (Sandbox Code Playgroud)

我希望有一种更干净的方式来使用这里的路线。:username 变量仅在引导应用程序时才需要,因此从 Url 中去除第一位并在此之后启动 NG 路由路径会更好。

我知道 base href 会将应用程序编译到潜在的子目录,但这不适用于变量 username。

有没有办法在 Angular 中完成这项工作?

Dav*_*bec 5

或者你可以这样做,它真的很简短,应该做同样的

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

用法:

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