2017-06-18 88 views
0

我使用@角/路由器角路由器選購PARAMS破壞/初始化組件

我的路線:

{ 
     path: '', 
     component: MyComponent, 
    }, 
    { 
     path: ':id', 
     component: MyComponent 
    } 

} 

有任何選項,兩個狀態(「」,「之間導航:ID 「)而不destory /初始化MyComponent

例如:

網址:空, 呼叫ngOnInit()

網址:/some_id, 通話ngOnDestory()ngOnInit()(破壞/建設爲MyComponent)

+0

肯定。你想要做什麼'無參數'和'id = 1'一些價值應該如何表現。我的建議是使用兩個不同的組件。 – Aravind

+0

我需要兩個選項相同的組件... – YairTawil

回答

0

可以使用ActivatedRoute注射器對於這一點,下面,

export default class MyComponent { 
    constructor(
    private route: ActivatedRoute, 
    private router: Router) {} 

    ngOnInit() { 
    this.sub = this.route 
    .params 
    .subscribe(params => { 
     if(params['id']){ 
      /// perform some opeartion with id 
     } else{ 
      // perform some other opeartion 
     } 
    }); 
} 
+0

我試圖避免ngOnInit ... – YairTawil

+0

爲什麼?任何有效的原因?我的應用程序上的 – Aravind

+0

昂貴的調用ngOnInit。 無論如何感謝 – YairTawil