【问题标题】:Angular 2: Redirect on page loadAngular 2:页面加载时重定向
【发布时间】:2017-08-23 23:43:44
【问题描述】:

当我的 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

【问题讨论】:

  • 试试下面的代码。 this.router.navigate("/", { skipLocationChange: true });

标签: angular angular2-routing


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-02
      • 2017-06-17
      • 2017-10-07
      相关资源
      最近更新 更多