Angular2路由器在ngOnInit

时间:2016-08-05 10:39:56

标签: angular angular2-routing

我正在使用服务数据结构 SharedDataService 在组件之间传输数据。 现在,如果没有设置数据结构,因为例如按下F5,我想在ngOnInit中使用router.navigate跳回另一个组件。

我在父组件中嵌套了一个子组件,并且两者都具有检查有效数据结构的逻辑,如果不存在则导航。

在另一种情况下,子组件是单独使用的,它们应该在这种情况下导航到不同的位置。

问题是,尽管我在父母中路由,但仍会调用孩子的ngOnInit。 然后在子ngOnInit中发生以下错误:

TypeError: Cannot read property 'toString' of undefined
at getPath (create_url_tree.ts:135)
at createNewSegment (create_url_tree.ts:221)
at updateSegment (create_url_tree.ts:163)
at updateSegmentChildren (create_url_tree.ts:174)
at Object.createUrlTree (create_url_tree.ts:28)
at Router.createUrlTree (router.ts:221)
at Router.navigate (router.ts:263)
at SafeSubscriber.eval [as _next] (conceptversion.component.ts:48)
at SafeSubscriber.__tryOrSetError (Subscriber.ts:249)
at SafeSubscriber.next (Subscriber.ts:193)

我试图创建一个plunker,但问题是我不知道如何从“@ angular / router”包含路由器。也许你已经可以看到我想要做的事情。

http://plnkr.co/edit/oyrSbW6jYhVOsjnp0MHv?p=preview

0 个答案:

没有答案