angular – 将NavigationExtras传递给模板中的routerLink

前端之家收集整理的这篇文章主要介绍了angular – 将NavigationExtras传递给模板中的routerLink前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在我的Angular 2应用程序中进行路由时禁用更改URL.

我知道skipLocationChange:true必须作为NavigationExtras参数传递给路由器.

我的问题是:

是否可以从模板内部将NavigationExtras传递给routerLink?

我试过的:

<h1>
  {{title}}
</h1>

<ul>
    <li><a [routerLink]="['route1',{ skipLocationChange: true }]">Route1</a></li>
    <li><a [routerLink]="['route2',{ skipLocationChange: true }]">Route2</a></li>
</ul>

<router-outlet></router-outlet>

但它不起作用.

单击链接后,路由将更改为http:// localhost:4200 / route2; skipLocationChange = true

我不想在我的控制器中使用this.router.navigate([‘route1],{skipLocationChange:true),从此我失去了routerLinkAtive突出显示.

没有办法(现在和afaik)同时具有routerLinkActive和skipLocationChange并期望你想要的结果.根据 api,您可以添加选项,但没有skipLocationChange选项.

但是,您可以将路由器中的NavigationExtras与ActivatedRoute结合使用,并根据该链接是否应该处于活动状态

更新

从2.3.0-beta.0开始,您可以将skipLocationChange选项添加到routerLink指令:

<li><a [routerLink]="['route1']" skipLocationChange>Route1</a></li>

猜你在找的Angularjs相关文章