如何在Angular页面中编写重定向代码?

时间:2019-07-23 22:37:06

标签: angular

在我的新Angular 8应用程序中,我有一个页面(技术路线),用户在该页面中选择单选按钮选择要访问的3个页面之一,并根据其选择将其重定向到所选页面。我知道其他网络技术(php,Coldfusion)有一个简单的重定向调用,但是我该如何使用路由呢? (因为路由必须在应用程序中加载...。)

我怀疑答案就在于从我的if / else / elseif块中调用一条路由(这只是遍历用户可能的选择)

if (radio_select_1) 
{redirect to page 1}
elseif (radio_select_2) 
{redirect to page 2}
else (radio_select_3) 
{redirect to page 3}

基于所选的单选按钮,我希望将用户重定向到应用程序中的该页面。

2 个答案:

答案 0 :(得分:1)

您需要导入/注入Router module。一旦有了,就可以重定向几种不同的方式。

示例:

export class MyComponent {
    private _router: Router;
    constructor(_router: Router) {
        this._router = _router;
    }
    doRedirect(url): Promise<void> {
        await this._router.navigateByUrl(url);
    }

}

OR 直接在您的路由器模块中重定向

  {
    path: 'redirectroute',
    redirectTo: '/some/path',
    pathMatch: 'full'
  },

注意,重定向的url必须是路由。如果是外部网址,那么很遗憾,您将不得不使用window.location.href = url;

答案 1 :(得分:0)

您可以参考https://angular.io/guide/routerhttps://angular.io/tutorial/toh-pt5来满足您的要求。我想您已经将组件放入了内部。要简单回答这个问题,您必须导入路由器模块

    import { Router } from '@angular/router';
constructor( private router:Router) {
}
if (radio_select_1) 
{this.router.navigate(['page_1']);}
elseif (radio_select_2) 
{this.router.navigate(['page_2'])}
else (radio_select_3) 
{this.router.navigate(['page_3'])}

为此,您必须在app.module.ts或导入的路由变量中定义路由。