簡體   English   中英

Angular 2 URL參數

[英]Angular 2 url parameters

如何在特定組件的url末尾添加斜杠? (我的客戶需要它,因此無需添加注釋;不要使用斜杠)。

提前致謝。

通過用斜杠定義路由,然后確保使用斜杠導航到URL,可以實現所需的結果。 這很可能會引起一些麻煩,因為由於斜杠的原因,路由器的深度將比您想象的要深一個級別。

路線
<p><a [routerLink]="['/a', '']">Component A</a></p>

您可以通過在定義的路由之后添加空字符串路徑來使路由器添加尾部斜杠。 如果您自己寫斜線,例如[routerLink]="['/a/']"角將刪除它。

鏈接
 <p><a [routerLink]="['/a', '']">Component A</a></p> 

要么

 <p><a [routerLink]="['../a', '']">Component A</a></p> 
以編程方式導航
 this.router.navigate(['/a', '']); 

演示版

您可以嘗試實現自定義UrlSerializer 它可能看起來像這樣:

import { DefaultUrlSerializer, UrlTree } from '@angular/router';

export class CustomUrlSerializer extends DefaultUrlSerializer  {
    parse(url: string): UrlTree {
        return super.parse(url);
    }

    serialize(tree: UrlTree): string {
        let url = super.serialize(tree);
        url = url.length > 1 ? url += '/' : url;

        return url;
    }
}

然后在您的NgModule提供它:

@NgModule({
  declarations: [
    ...
  ],
  imports: [
    ...
  ],
  providers: [...
                {provide: UrlSerializer, useClass: CustomUrlSerializer}
              ],
  bootstrap: [...]
})
export class AppModule { }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM