Angular 2:页面加载时重定向

时间:2017-03-30 07:29:32

标签: angular angular2-routing

当我的Angular 2(v2.4)应用程序加载时,我试图将用户重定向到某个页面,而不管他们输入的URL。例如,如果用户使用http://www.myapp.com/somepagehttp://www.myapp.com/anotherpage加载应用,则应用会自动重定向到http://www.myapp.com/entrypage

为此,我的AppComponent中有以下代码(这是第一个加载的组件):

export class AppComponent implements OnInit {

    constructor(private router: Router) {


    }

    ngOnInit() {
        console.log(this.router);
        this.router.navigateByUrl("/", { skipLocationChange: true });
    }


}

然而,当应用加载重定向时,无法正常工作。它似乎在返回原始请求路线之前快速重定向。

我怎样才能使这个工作?是否有一种“正确”的方式来实现这一目标?

JT

2 个答案:

答案 0 :(得分:2)

在路线配置中使用通配符。 path: **将获取任何未定义的URL并将用户路由到特定的已定义路由。你可以这样做:

export const ROUTES: Routes = [{
  path: '',
  component: AppComponent,
}, {
  path: '**',
  redirectTo: ''
}];

然后,在app.module.ts中,在imports数组下加载您的路线:RouterModule.forRoot(ROUTES)

答案 1 :(得分:0)

为什么不在app.routing.ts中设置应用程序路由?您可以为那里的所有网址设置默认值,无论他们输入的网址是什么。