【问题标题】:I have a error when I try to swich the old angular 2 router with the new Router当我尝试用新路由器切换旧的 angular 2 路由器时出现错误
【发布时间】:2016-05-27 08:03:14
【问题描述】:

我有主应用程序组件,在管理组件下我想添加子路由,例如 /admin/users、/admin/subscribers

@Component({
    selector: 'my-app',
    template: `<router-outlet></router-outlet>`
    directives: [ROUTER_DIRECTIVES]
    })
@Routes[
new Route({
                path: '/admin/...',
                //name: 'Admin',
                component: AdminPage
            })
]

这是管理组件的配置

@Component({
    selector: 'admin-Page',
    templateUrl: applicationPath + '/adminPage.html',
    directives: [ROUTER_DIRECTIVES]
})
@Routes([
    new Route({
        path: '/users',
        component: UsersPage,
        // name: 'Users',
        // useAsDefault:true
    }),
    new Route({
        path: '/subscribers',
        component: SubscribersPage,
        // name: 'Subscribers'
    })
]

...但问题是应用程序无法识别路由 /管理员/用户。新路由器不支持此行为 还有吗?只是语法不同吗?

【问题讨论】:

  • 错误消息说这是AppComponent inline template:2:12 中的错误,但您的代码不包含AppComponent 或模板。请添加AppComponent的代码。
  • 我发现错误I subcomponent used the deprecated router,新路由器是否支持非最终路由?像 '/admin/...' 因为现在我收到了一个不匹配的路由错误?
  • /... 在新路由器中不再是必需的。对于该错误,请确保您在 @Routes([...]) 中的路线已排序,以便最不具体的路线排在最后。
  • 好的,但是我在多个组件之间拆分了路线,这意味着使用新的@Routes 我应该将所有路线集中到一个地方?
  • 我会为此添加一个新问题

标签: angular angular2-routing


【解决方案1】:

您不再需要在 RC.1 路由器中使用/... 来指示存在子路由。

【讨论】:

  • 那么 Angular 如何知道该组件是否有 SubRoutes ?以及相同的替代方法是什么,如果您提供任何工作示例或一些显示 RC.1 中的路由的代码,则更好
  • 不需要提前知道。这是新 RC.1 路由器的主要原因之一,因为这会导致延迟加载路由的问题。当一个路由的组件被加载时,如果它有一些路由就会被读取,然后路由器知道有一些。
  • 当然还有 is 子路由。您只是不需要在父级显式配置它。只需在子组件上配置路由即可。
  • 我们将如何调用子路由?是否有任何文档或文章可以更多地解释 angular2 中的子路由?
  • 只需导航到它。我不确定你在哪里看到这个问题。
猜你喜欢
  • 2016-07-15
  • 2016-03-21
  • 2016-09-09
  • 1970-01-01
  • 2017-04-20
  • 2017-09-19
  • 2020-02-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多