【问题标题】:Can't route to the primary outlet from component rendered in a named outlet in Angular无法从 Angular 的命名插座中呈现的组件路由到主插座
【发布时间】:2017-08-18 21:27:51
【问题描述】:

我正在使用命名的网点,我注意到以下代码有效,将我发送到请求的页面只有当它在另一个网点之外时。

<div routerLink="banana">Working Banana</div>

当上面的代码是主要出口内呈现的标记的一部分时,路由会按预期发生。但是,从在其中一个命名插座中呈现的组件完成的相同路由请求似乎根本不起作用。

我不愿意在更聪明的人所做的事情上调用错误,所以我假设当单击在命名插座中呈现的组件时,一种在主插座中路由的方法.但是怎么做呢?

有关工作和不工作香蕉的演示,请参阅here at StackBlitz。是的,我用谷歌搜索过。但是要为这些东西找到一个好的组合键并不容易......

【问题讨论】:

  • 只需添加斜线&lt;div routerLink="/banana"&gt;使其成为绝对导航

标签: angular routing


【解决方案1】:

问题是routerLink="banana" 执行相对于当前路线的导航。虽然您似乎想导航到domain.com/banana,但为此您需要绝对导航。要使其免除导航,只需添加一个正斜杠:

<div routerLink="/banana">

【讨论】:

  • 想到了一个更嵌套的例子。在这个阶段,你是完全正确的 - 我在 base.com/(menu:x) 想要导航到 base.com/stuff(menu:x) ,所以 /stuff 做到了。如果我在 base.com/a/b/c(menu:x) 并想导航到 base.com/a/b/c/d(menu:x ) 没有指定绝对路径?如果我想导航到 base.com/a/b(menu:x) 怎么办?是否可以使用静态 routerLink 版本导航到 base.com/a/b/c/d (即没有括号也没有耦合到 TS 中的方法) ?如果话题太大而无法发表评论,我当然可以发布一个新问题。
  • 是的,我认为如果您创建另一个问题并使用router-outlets 模板进行路由配置和组件会更好。当你看到整个图片时,你会更容易思考
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-13
  • 1970-01-01
  • 2018-07-28
  • 2017-02-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多