【问题标题】:Get full Url when using Angular2使用 Angular2 时获取完整的 URL
【发布时间】:2016-11-21 16:28:01
【问题描述】:

我原以为通过 Angular2 的所有工作找到这些信息会很简单,但显然不是......

1) 如何获取Angular2中激活路由的full url?我知道我可以打电话给window.location.href,但想知道是否有 Angular 方式。

2) 有没有办法“构建”一个 url?如果我知道我想要的路线和所述路线的参数,我可以构造 full url 吗?

【问题讨论】:

  • stackoverflow.com/questions/37517183/… 中的 Plunker 提供了我的尝试。
  • 当 plunker sn-p 运行时,您会看到“正在加载...”,然后什么也没有。但是,在我发布我的问题之前,我在搜索过程中看到了您的回复,但是当我尝试 location.prepareExternalUrl(location.path()) 时,我只得到了一个绝对路径...而不是 full 路径(完整路径应包括协议、主机、端口等)
  • 打开浏览器控制台。在那里,您可以获得所有示例的输出。 2 小时前为我工作。
  • 显示的输出是/xvwySO0pwRXUn9CUXcJu?p=preview。正如我已经说过的,location.prepareExternalUrl(location.path())not 显示 full url。对于完整的网址,我希望您的 plunker 示例的输出为 https://plnkr.co/edit/xvwySO0pwRXUn9CUXcJu?p=preview
  • 这个问题写得不好。我的意图比所说的更复杂。我很抱歉。我会投票给自己,但似乎你不能这样做。

标签: angular


【解决方案1】:

如果您构建 url 并想导航,您可以使用 navigateByUrl 方法

router.navigateByUrl("/team/33/user/11");
// Navigate without updating the URL
router.navigateByUrl("/team/33/user/11", { skipLocationChange: true});

https://angular.io/docs/ts/latest/api/router/index/Router-class.html#!#navigateByUrl-anchor

【讨论】:

  • 抱歉延迟响应 Sumant -- 我应该更清楚一点,因为我不想进行字符串连接。我的问题更多的是围绕“是否有一种方法可以使用可以构建 url 的参数调用”。话虽这么说,因为您已按书面方式回答了问题,因此我会给予您信任。
【解决方案2】:

您可以在 document.location 的帮助下获取 Angular 2 中的完整 URL。 它指的是当前的 URL。此外,document.location 等价于 window.location.href

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-08
    • 2017-04-22
    • 2011-10-09
    • 2010-11-22
    • 2021-10-29
    • 2013-11-28
    相关资源
    最近更新 更多