如何在Angular 5中路由到外部链接

时间:2018-03-22 19:22:01

标签: angular angular5

这可能是一个愚蠢的问题,但我是Angular的新手并没有得到答案。

我正在学习一个教程,并为我的Angular 5项目设置了这样的路线:

import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';

import { PageComponent } from './page/page.component';

const appRoutes: Routes = [
  {path: '', redirectTo: '/home', pathMatch: 'full'},
  {path: 'home', component: PageComponent, data: {
    page: 'home'
  }},
  {path: 'about', component: PageComponent, data: {
    page: 'about'
  }},
  {path: 'contact', component: PageComponent, data: {
    page: 'contact'
  }},
  {path: 'facebook', component: PageComponent, data: {
    page: 'facebook'
  }},
  {path: '**', redirectTo: '/home', pathMatch: 'full'}
];

@NgModule({
  imports: [RouterModule.forRoot(appRoutes)],
  exports: [RouterModule]
})
export class AppRoutingModule {
}

让我们说我想要路由" facebook"我的Facebook页面的路径。我不知道如何路由到Angular Application之外的页面。

任何帮助将不胜感激!

3 个答案:

答案 0 :(得分:5)

@Rafael作为评论留下了正确答案。

您只需创建一个指向facebook的链接标记

<a href="www.facebook.com/yourpage">Facebook</a>

您正在设置的路由全部用于本地路径。 换句话说,所有这些路线都是www.yoursite.com/route1上显示的内容,以及www.yoursite.com/route2上显示的内容。

但请注意,他们都将拥有域名的yoursite.com。

如果您想创建指向域外部网站的链接,那么您不希望混淆角度路由,而是创建链接。

所以您真正要问的是如何在www.yourpage.com/facebook上显示www.facebook.com的页面,这是不可能的。

如果没有iframe,您无法在自己的网站中显示不同的网站,即使是路线也是如此。

如果这确实是您尝试做的事情,那么您可能需要查看iframe。

答案 1 :(得分:1)

只需使用常规锚点href。

<a href="http://facebook.com">Add Vehicle</a>

或javascript:

window.location.href = 'http://facebook.com';

答案 2 :(得分:0)

对于正在寻找如何实施的解决方案的任何人 上面提到的使用 TypeScript 的解决方案是下面的一个例子

const link = document.createElement('a');
link.href = 'http://facebook.com/'
link.target = '_blank';
link.click()

如果您想了解如何从外部链接下载,只需添加

link.download = 'download';