2017-06-14 64 views
1

我試圖從其父項更改te組件中激活的te組件。展望如何Ionic does it,我認爲它應該是類似這樣的東西(很簡單):從其父項導航<router-outlet>

@Component({ 
    template: '<router-outlet></router-outlet>' 
}) 
export class MyComponent { 
    @ViewChild(RouterOutlet) router: RouterOutlet; 

    foo() { 
     this.router.navigate('/route'); 
    } 
} 

顯然,這是行不通的。有什麼辦法可以做類似的事嗎?

預先感謝您!

回答

3

而不是@ViewChild(RouterOutlet) router: RouterOutlet;,你應該注入它的組件的構造函數。而不是使用RouterOutlet,您使用Router。您的組件看起來是這樣的:

@Component({ 
    template: '<router-outlet></router-outlet>' 
}) 

export class MyComponent { 
    constructor(router: Router) {} 

    foo() { 
     this.router.navigateByUrl('/route'); 
    } 
} 

而且也,你需要確保你已經包括RouterModule和你的網址,您的應用程序模塊在列表中。

+0

非常感謝!我之前嘗試過,但沒有奏效。我只是意識到這是因爲一個衛兵...... :( – AlvYuste