【问题标题】:angular2 how to make route as default routeangular2如何将路线设为默认路线
【发布时间】:2016-08-10 18:44:01
【问题描述】:

Angular2 rc.4-5

我有以下路线配置。

我怎样才能将任何路由设为默认路由,所以当页面加载时它会转到 hello 组件无需重定向

    let routes: RouterConfig = [

                {
                    path: 'hello',
                    component: HelloComponent
                },
                /*{
                    path: '',
                    redirectTo: '/hello',
                    pathMatch: 'full'
                },*/
                {
                    path: 'increment',
                    component: IncComponent
                },{
                    path: 'adder',
                    component: AdditionComponent
                },{
                    path: 'roman',
                    component: RomanComponent
                }
            ];
router.resetConfig(this.routes);

【问题讨论】:

  • 重定向有什么问题?这就是在新路由器中完成的方式。
  • 重定向的问题是,我正在使用异步加载组件并且在页面加载时他们不知道路由是否存在
  • 我正在关注有关新路由器和 RC5 的 Angular 文档,我不想重定向。对重定向没有任何要求。现在我面临以下问题。在app.module 中,我正在引导AppComponent,我在app.router 中还有另外两条路线(危机中心和英雄)。我收到了这个错误:无法匹配任何路线:''我想要AppComponent 喜欢主页。如果我添加一个路由 { path:'', component: AppComponent} 比我看到AppComponent 两次。我该如何解决这个问题?

标签: angular angular2-routing


【解决方案1】:

顺序在您的路线中很重要,因此请确保“默认”路线是第一位的。如果您希望 HelloComponent 成为您的默认页面,请像这样设置您的路由器....

{path:'', component: HelloComponent},
{path:'increment', component: IncrementComponent}

等等

【讨论】:

  • HelloComponent 也可能有自己的路径,例如“hello”,然后我又创建了一个类似 {path:'hello', component: HelloComponent} 的条目,我想避免
  • 没有默认的点是你不添加额外的路径路由。因此,只要您想重定向到 Hellocomponent,您就可以将路径或路由指定为“空白”,就像在 ''
【解决方案2】:

您可以这样做以获取更多详细信息,请阅读 Matching Strategy 标题下的 here

[{
  path: '',
  pathMatch: 'prefix', //default
  redirectTo: 'main'
},
{
  path: 'main',
  component: Main
}]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-03
    • 2016-10-02
    • 1970-01-01
    • 2019-06-30
    • 2015-09-08
    • 1970-01-01
    • 2013-03-22
    相关资源
    最近更新 更多