我想在组件中打开另一个网站。在Angular中使用深层链接

时间:2019-07-16 15:16:46

标签: angular angular-ui-router

我必须使用深层链接。告诉我该怎么办?

app-routing.module.ts

const routes: Routes = [ { path: 'hi',
redirectTo: '/http://www.sunbeaminfo.com/',
pathMatch: 'full'
}];

app.component.html

<a href="/hi" routerLinkActive="active">demo</a>
<router-outlet></router-outlet>

1 个答案:

答案 0 :(得分:0)

使用Angular Router链接到外部网站是一个好主意,因为您可以调用不同的routing guard

话虽如此,路由到外部网站的最简单方法是使用Resolve防护。

在您的路线中,定义如下路线:

{
    path: 'myExternalLink/:url',
    resolve: { url: ExternalUrlNavigator },
    component: EmptyComponent // Just need a component. I don't know if redirect would     work here
}

在您Resolver的{​​{1}}部分中声明您的全新providers,如下所示:

AppModule

然后创建新的..., providers: [ ExternalUrlNavigator ]

Resolver

要使用它,您可以将其作为@Injectable() export class ExternalUrlNavigator implements Resolve<void> { resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): void { const url = route.params['url']; window.open(url, '_self'); } } ,{url:''}]))的参数作为router的参数;`

直接在模板中

this.router.navigate(['/myExternalLink

瞧瞧!

有关更多信息

Window.open

Resolver

Routing guards