如何在没有Angular prepending" localhost:xxxx"?的情况下导航到外部URL

时间:2018-02-07 08:27:02

标签: angular angular-router angular-router-guards

我试图写一个警卫,如果用户没有登录,重定向到外部服务(比如Instagram),

if (!loggedIn) {
   this.location.go(this.instagramLoginUri);
}

其中location是Angular' Location的实例,而URI是

https://api.instagram.com/oauth/authorize/?client_id=xxxxx&redirect_uri=xxxxx&response_type=token

当这个守卫触发时,Angular会尝试导航到

http://localhost:4200/https://api.instagram.com/oauth/authorize/?client_id=xxxxx&redirect_uri=xxxxx&response_type=token

当然失败了。我尝试使用

window.location.href = 'xxxxx'

同样,结果完全相同,所以我不确定这是否与Angular相关。有什么指针吗?

1 个答案:

答案 0 :(得分:1)

请你试试这个:

 constructor(@Inject(DOCUMENT) private document: any) { }

 if (!loggedIn) {
    this.document.location.href = 'http://instagram.com';
 }