【问题标题】:Angular 4 route to external urlAngular 4路由到外部网址
【发布时间】:2018-06-14 17:01:51
【问题描述】:

我正在尝试获取到外部 URL 的路由。以下是我到目前为止的示例。

我得到的错误是:

ERROR 错误:未捕获(在承诺中):错误:无法匹配任何路由。网址段:'https://google.com'

错误:无法匹配任何路由。网址段:'https://google.com'

这是我的代码

ViolatorLink() {
    this.router.navigate(['https://www.google.com/'], {
        queryParams: {mid: this.mid}
      }
    );
  }

【问题讨论】:

标签: angular


【解决方案1】:

理想情况下,您应该使用 window.location.href = "https://www.google.com"; 进行外部 URL 调用,因为 this.router.navigate 会在 angular routings 中查找 URL。

你的函数应该是这样的:

ViolatorLink() {
    window.location.href = "https://www.google.com";
  }

【讨论】:

  • 你为什么发布同样的答案 agian
  • 我没有检查,你已经发布了一些东西。这个问题只有一种解决方案,所以我们的答案是相似的。 @Sajeetharan
  • 也感谢您的回复。也许你可以帮助我上面的一些附加问题? @Rohit.007
  • 是的,请询问您的问题
  • 好的,我刚刚检查了您在另一个答案中的回复。您可以在 ViolatorLink() 函数中获取所有参数,并且可以在 URL 中连接您的参数,例如window.location.href = "https://www.google.com/id/" + yourId 其中yourId 是一个变量。
【解决方案2】:

你需要使用 this.router.navigate

window.location.href = "https://www.google.com";

this.router.navigate 将仅导航到路由器配置模块中配置的元素。所以你得到了上面的错误。

【讨论】:

  • 太棒了,现在我如何将 url 导航到 www.google.com/ 并获得 this.mid 值?
  • 如果你想传递应该带有 href 的参数
  • 你真正想做什么?
  • 我有一个外部链接 foo.com,我需要将参数传递给它,例如 www.foo.com/11/
  • 这样做有什么好处?它也依赖于外部网站
【解决方案3】:
<a [href]="https://www.yourExternalURL.com">

我正在输入额外的字符,因为 SO 现在需要在答案中至少 30 个字符。

【讨论】:

  • SO 需要 30 个字符,因此您可以解释您的答案,而不仅仅是发布代码(就像您所做的那样)。此外,这仅在您想直接从视图重定向到外部 URL 时才有用。相反,如果您想从组件重定向,那么这无济于事。
猜你喜欢
  • 1970-01-01
  • 2019-09-11
  • 2015-07-07
  • 2018-02-22
  • 2018-01-13
  • 1970-01-01
  • 1970-01-01
  • 2018-01-04
  • 1970-01-01
相关资源
最近更新 更多