2016-12-22 81 views
4

我想知道是有可能有指向1个单个部件2个不同的路由?例如:2路线一个角度成分

{ path: 'signin', component: SignInComponent }, 
{ path: 'tenant/:id/signin', component: SignInComponent } 

我这么问是因为我有一些有线的行为..

+0

是,其可能的。它取决于你如何处理组件内部的功能实现 – ranakrunal9

+0

是的,你可以使用?你能说出你面临的问题吗? –

+0

routerLinkActive没有被激活,我刚刚更新的例子 – Vnuuk

回答

4

是的,你可以使用指向同一部​​件2不同的路线。但是,当您从一条路线导航到与前一条路线使用相同组件的不同路线时,角将重新使用您的组件实例。它不会创建组件的新实例。

如果您将定位从“登入”到“租户/:ID /登入”,然后角度将使用它“登入”创建SignInComponent的同一个实例。 SignInComponent的构造函数和init方法不会被调用。 你可以在init方法中使用observable。 ActivatedRoute的params方法是可观察的。你可以做这样的事情来提取参数:

路线是您ActivatedRoute实例

ngOnInit() { 
    this.route.params 
    .switchMap((params: Params) => this.service.getHero(+params['id'])) 
    .subscribe((hero: Hero) => this.hero = hero); 
} 

的switchMap运营商允许你执行与可观察到的电流值的动作,并将其映射到一个新的观察到。 这段代码获得了一个在服务路由中指定了id的英雄。 你可以做这样的事情。如果你会发布代码,那么我可以告诉你你需要做什么。

+0

怎样的角度不同组件之间的区别?如果有'user'和'user /:gender'两条路线,则导航可以正常工作,但从'user/male'失败到'user/female'。 – Yang

+0

我没有得到你的问题。你能解释一下吗? – saurav1405

+0

对不起,我没有说清楚。有两条路径使用相同的组件,如'{path:'user',component:UserComponent}'和{{:user::gender',component:UserComponent}'。导航能够以角度2从'/ user'正常工作到'/ user/male',反之亦然。但是它在'/ user/male'和'/ user/female'之间失败了。我的意思是在前一个场景中创建新组件,即使组件是相同的,但不是后者。 – Yang