首页 文章

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

提问于
浏览
5

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

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

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

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

更新

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

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

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

1 回答

  • 0

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

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

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

相关问题