首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Angular2中重定向到外部URL?

如何在Angular2中重定向到外部URL?
EN

Stack Overflow用户
提问于 2015-12-17 23:37:24
回答 8查看 377.3K关注 0票数 231

在Angular 2中将用户重定向到完全外部的URL的方法是什么。例如,如果我需要将用户重定向到OAuth2服务器以进行身份验证,我该如何做?

Location.go()Router.navigate()Router.navigateByUrl()可以很好地将用户发送到Angular 2应用程序中的另一个部分(路由),但我不明白如何使用它们来重定向到外部站点?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2015-12-18 01:37:27

您可以使用这个-> window.location.href = '...';

这会将页面更改为您想要的任何内容。

票数 288
EN

Stack Overflow用户

发布于 2015-12-18 02:29:42

正如丹尼斯·斯莫莱克所说,The solution非常简单。将window.location.href设置为您想要切换到的URL,它就可以正常工作。

例如,如果您在组件的类文件(控制器)中有此方法:

代码语言:javascript
运行
复制
goCNN() {
    window.location.href='http://www.cnn.com/';
}

然后,您可以通过对模板中的按钮(或其他任何东西)进行适当的(click)调用来非常简单地调用它:

代码语言:javascript
运行
复制
<button (click)="goCNN()">Go to CNN</button>
票数 42
EN

Stack Overflow用户

发布于 2016-09-21 22:47:41

如果您一直在使用OnDestry生命周期钩子,那么在调用window.location.href=之前,您可能会有兴趣使用下面这样的东西……

代码语言:javascript
运行
复制
    this.router.ngOnDestroy();
    window.location.href = 'http://www.cnn.com/';

这将在您的组件中触发您可能喜欢的OnDestry回调。

哦,还有:

代码语言:javascript
运行
复制
import { Router } from '@angular/router';

就是你找到路由器的地方。

-EDIT-遗憾的是,我在上面的例子中可能是错的。至少现在在我的产品代码中它不像exepected那样工作-所以,在我有时间进一步研究之前,我像这样解决它(因为我的应用程序在可能的时候确实需要钩子)

代码语言:javascript
运行
复制
this.router.navigate(["/"]).then(result=>{window.location.href = 'http://www.cnn.com/';});

基本上,路由到任何(虚拟)路由以强制钩子,然后根据请求导航。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34338440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档