【问题标题】:Angular 2 child and parent (webpack, TS, Angular 2 final)Angular 2 子级和父级(webpack、TS、Angular 2 final)
【发布时间】:2017-04-09 16:05:45
【问题描述】:

从昨天开始就一直在摸不着头脑,不知道如何解决我的问题。我有一个父:仪表板组件,其中包括页眉和下拉列表。我的子组件目前只包含一行:"Child Component! Chosen value from dropdown list: "Some value"". 请看下面的图片。

通信正常,但导航到仪表板时遇到问题。

我的路线如下所示:

{
    path: 'admin',
    component: AdminComponent,
    children: [
        {
            path: '',
            component: AdminComponent,
        },
        {
            path: 'something/:name',
            component: TestComponent,
        },
    ]
},

如果我不添加:

        {
            path: '',
            component: AdminComponent,
        },

在儿童路线中,我收到错误:

Uncaught (in promise): Error: Cannot match any routes: 'admin'
Error: Cannot match any routes: 'admin'

但这也意味着,当我在子视图中添加它时,父视图会显示两次。

当我从下拉列表中选择一个项目时,这一切都很好,它触发了子视图,视图看起来就像它应该的那样,带有下拉列表的父视图和子文本行。

我已尝试更改儿童路线中的线路:

    children: [
        {
            path: '',
            component: AdminComponent,
        },
        {
            path: 'something/:name',
            component: TestComponent,
        },
    ]

到:

    children: [
        {
            path: '',
            redirectTo: 'admin',
        },
        {
            path: 'something/:name',
            component: TestComponent,
        },
    ]

但它不起作用

【问题讨论】:

  • 您能否提供一个 Plunker 与您的代码?
  • 子路由componentDashboardComponent一样,不会死循环吧?
  • @PankajParkar 路由和组件可以分开看。仅当 DashboardComponent 中进行一些重定向时,它应该可以工作。虽然不像预期的那样,但它可以工作;)
  • @PierreDuc 明白了,这是我的错误假设。谢谢指正:)

标签: angular typescript routing


【解决方案1】:

改成这样:

 children: [
        {
            path: ''
        },
        {
            path: 'something/:name',
            component: TestComponent,
        },
 ]

这只会在您的router-outlet 中的空路径上呈现任何内容。另一种选择可能是将空路径重定向到something,并使用占位符组件说:“选择一种疾病”。

【讨论】:

  • 完美!!就这么简单,呵呵。是的,这解决了我的问题,太棒了,谢谢!
猜你喜欢
  • 1970-01-01
  • 2017-07-20
  • 2018-01-15
  • 2016-10-04
  • 2019-02-05
  • 2017-04-16
  • 2017-11-25
  • 2016-11-12
  • 1970-01-01
相关资源
最近更新 更多