【问题标题】:Angular2 useAsDefault not work for child routeAngular2 useAsDefault 不适用于子路由
【发布时间】:2016-01-04 23:36:39
【问题描述】:

我一直在玩 Angular2 路由示例,它有子路由作为默认路由,但该示例没有导航到该默认路由:https://angular.io/resources/live-examples/tutorial/ts/plnkr.html

在没有子路由的英雄之旅教程中,useAsDefault 工作正常:https://angular.io/resources/live-examples/router/ts/plnkr.html

任何解决方案将不胜感激。提前致谢

【问题讨论】:

    标签: javascript angular


    【解决方案1】:

    显然嵌套的useAsDefaults 不起作用,我不知道这种行为。还要注意,问题是父路由中的useAsDefault,而不是子路由。

    您可以通过添加 redirectTo 来解决该问题。

        @RouteConfig([
          { path : '/', redirectTo : ['CrisisCenter'] }, // Here...
          { // Crisis Center child route
            path: '/crisis-center/...',
            name: 'CrisisCenter',
            component: CrisisCenterComponent
          },
    
          {path: '/heroes',   name: 'Heroes',     component: HeroListComponent},
          {path: '/hero/:id', name: 'HeroDetail', component: HeroDetailComponent},
          {path: '/disaster', name: 'Asteroid', redirectTo: ['./CrisisCenter', 'CrisisDetail', {id:3}]}
        ])
        export class AppComponent { }
    

    请注意,我删除了多余的 useAsDefault。我会提出一个问题,以便他们可以在文档中修复它。

    更新 2

    实际上,这不是文档中的错误,而是错误。我得到了@wardbell 的confirmation。已经有一个issue 提交了这个错误。

    所以根据他的评论,文档不会更新(没有什么可更新的,这是一个错误!)。

    已报告此问题 [...]。我将文档原样保留,希望它很快会变得正确。

    更新

    这是我提交的issue。他们会告诉我们这是否是文档中的错误(很可能,我敢打赌)。他们回答后我会更新。

    【讨论】:

    • 谢谢。现在它正在工作^_^实际上我之前尝试过redirectTo,但不知道为什么不起作用,可能是我的一些错别字
    • 现在应该可以了。如果没有,请将其报告为错误
    • 这仍然是一个错误,还是什么?我遇到了同样的问题并开始寻找答案 - 找到了这个......请告诉我,因为我很想避免使用 redirectTo,因为这感觉就像是黑客攻击。
    猜你喜欢
    • 2016-09-20
    • 1970-01-01
    • 1970-01-01
    • 2016-04-21
    • 2018-11-11
    • 2016-03-28
    • 1970-01-01
    • 1970-01-01
    • 2017-04-12
    相关资源
    最近更新 更多