当我的Angular 2(v2.4)应用程序加载时,我试图将用户重定向到某个页面,而不管他们输入的URL。例如,如果用户使用http://www.myapp.com/somepage
或http://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
答案 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中设置应用程序路由?您可以为那里的所有网址设置默认值,无论他们输入的网址是什么。