2016-12-22 122 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