我可以从URL隐藏Angular 2 Secondary Routes吗?

问题描述 投票:5回答:1

我在Angular 2中使用辅助导航路线(有时称为辅助路线)来管理我的左右侧边栏中显示的内容。对我来说,这似乎是正确的方法,因为我希望侧边栏在整个网站中都是持久的,但我还希望能够在需要时(通过执行辅助导航)从组件内部更改其内容。

例如,当用户查看文章并以编辑器身份登录时,我可能希望在左侧边栏上添加“编辑”按钮。我可以通过在我的“ArticleDetailComponent”中执行辅助导航来完成此操作。

但是,我不希望侧边栏的路由显示在URL中。它会向用户泄漏实现细节,并且会混淆原本简单,令人难忘的URL,同时不会给用户增加任何价值。

那么,如何从URL隐藏辅助路由?或者我是在问错误的问题,而我的方法基本上是以某种方式解决的?

更新

这可以通过在执行辅助导航时将第二对象传递给导航命令来实现,例如,

this._router.navigate(
    [{ outlets: { 'left-column': ['home'] }}],
    { skipLocationChange: true }
);

但是,这种方法存在一个缺陷,我尚未解决。当主要导航发生时(无论如何),当主导航更改位置时,辅助路由将添加到URL。这可能是我需要向Angular团队报告的问题。

angular angular2-routing
1个回答
0
投票

改为使用链接,它可以正常工作。

<a [skipLocationChange]='true' [routerLink]="[{ outlets: { 'left-column': ['home'] }}]">Label</a>

http://dynamo-t.firebaseapp.com 目前,该应用程序正处于构建阶段。

© www.soinside.com 2019 - 2024. All rights reserved.