Angular2 路由中的 Const 参数

Const params in routes in Angular2

我需要在路线中保存当前选择的语言。

示例:

/en/login
/en/welcome
/ru/register
....

有没有一种简单的方法可以在路由上设置一些前缀,或者我应该在每条路由中设置语言?

主要想法是在模板中编写类似

的内容
[linkTo]="/welcome"

但结果在路由器中有类似

的东西
/en/welcome

P.S。我用 ngrx/router

创建一个存储语言前缀的 localStorage 项。
扩展路由器并覆盖导航方法。
当路由器被告知导航时,注入语言前缀。

如果您不喜欢扩展路由器的想法,请制作一个包装器,然后改用包装器。

@Injectable()
export class MyRouter {
    constructor(private _router: Router){}

    navigate(url: string){
        var lang : string = localStorage.getItem("lang");
        this._router.navigate(["/"+lang+"/"+url]);
    }
}

更新

import { Router } from "@ngrx/router";
import { LocationStrategy } from "@angular/common";
import { Injectable } from "@angular/core";
@Injectable()
export class GlobalRouter extends Router {
    constructor(public platformStrategy: LocationStrategy) { // ANGULAR 2 DEPENDENCY INJECTOR SHOULD TAKE OVER
    // it's not working
        alert("constructor");
        super(platformStrategy);
    }

    normalize(url: string): string {
        let router = super.normalize(url);
        alert(`normalize router ${router}`);
        return router;
    }
}

bootstrap(AcademyApp, [
    HTTP_PROVIDERS,
    provideStore(reducer),
    runEffects(effects),
    connectRouterToStore(),
    provideRouter(routes),
    provideDB(schema),
    actions,
    services,
    provideForms(),
    disableDeprecatedForms(),
    FORM_PROVIDERS,
    {
        provide : Router,
        useClass: GlobalRouter
    }
])