【问题标题】:How do I get auxiliary routes from url using Angular2's functionality?如何使用 Angular2 的功能从 url 获取辅助路由?
【发布时间】:2016-11-01 17:27:47
【问题描述】:

我有这个 url,它是通过导航到两个辅助路由(foobar)生成的,它们是page 路由的 children

localhost:4200/page/(tab1:foo//tab2:bar)

tab1tab2 是路由器插座的名称。

如何使用 Angular2 的功能将这两条路线 - foobar 作为字符串?

让我们假设一切都已正确配置。

我目前的解决方案是使用带有正则表达式的 Routerurl 属性,考虑到 Angular2 的可能性有多大,感觉有点“笨拙”。

【问题讨论】:

  • 什么意思?喜欢你想在那里导航吗?或者你只想 console.log 你在哪条路线上?你想在一个函数中调用你的路由吗?你是什​​么意思我的朋友? :)
  • 我需要从 url 中获取 foobar 字符串。我知道我可以使用 router.url 属性并剪断字符串,但还有更多“Angularish”的方法吗?

标签: angular angular2-routing


【解决方案1】:

您可以添加一个名为 :expression 的可选参数并获取参数然后对其进行解析。

我为您提供了一个简单的 plunk:https://embed.plnkr.co/IPFX7gnCYN9OQJ5DFBVi/

更新:

有辅助路由:https://embed.plnkr.co/dVTPhJtrXjKDVPliE5qv/

您应该将 ActivatedRoute 注入包含然后您可以通过以下代码获取 foo & bar 的主路由:

let children = this._route.snapshot.children,    

children.forEach(child => console.log((child.url[0] || {path:''}).path);
// ''
// foo
// bar

希望对你有所帮助。

【讨论】:

  • 谢谢,但您的示例并没有解决问题,因为在您的情况下,我们将字符串作为参数,这使得它与 Angular2 中辅助路由的使用无关。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多