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