我在Angular 2中使用辅助导航路线(有时称为辅助路线)来管理左右侧边栏中显示的内容。这对我来说似乎是正确的方法,因为我希望侧边栏在整个网站中都是持久的,但我也希望能够在需要时(通过执行辅助导航)从组件内部更改其内容。
例如,当用户查看文章并以编辑器身份登录时,我可能想在左侧边栏上添加“编辑”按钮。我可以通过在“ArticleDetailComponent”中执行辅助导航来完成此操作。
但是,我不希望侧边栏的路由显示在URL中。它会向用户泄漏实现细节,并且会混淆原本简单,令人难忘的URL,同时不会给用户增加任何价值。
那么,如何从URL隐藏辅助路由?或者我是在问错误的问题,我的方法基本上是以某种方式解决的?
这可以通过在执行辅助导航时将第二个对象传递给导航命令来实现,例如
this._router.navigate(
[{ outlets: { 'left-column': ['home'] }}],
{ skipLocationChange: true }
);
然而,这种方法存在一个缺陷,我尚未解决。当主要导航发生时(无论如何),当主导航更改位置时,辅助路由将添加到URL。这可能是我需要向Angular团队报告的问题。
答案 0 :(得分:0)
改为使用链接,它可以正常工作。
<a [skipLocationChange]='true' [routerLink]="[{ outlets: { 'left-column': ['home'] }}]">Label</a>
请参见http://dynamo-t.firebaseapp.com
目前,该应用程序处于构建阶段。