2017-03-02 18 views
2

我想在Angular引導的組件中讀取可選的URL參數,無論查詢或矩陣參數如何,在ngOnInit()中。在Angular(2)引導組件中讀取URL(矩陣||查詢)參數

據我理解,「ActivatedRoute」不是在出口未加載的分量 可用,因此與像一個index.html:

<body> 
    <app-root>Loading...</app-root> 
</body> 

和app.module.ts包含文件:

bootstrap: [AppComponent] 

如果以及如何可以從http://localhost:4200/my-component/id;param1=abc 訪問參數?

@Component({ 
    selector: 'app-root', 
    template: '<router-outlet></router-outlet>', 
    styles: [] 
}) 
export class AppComponent implements OnInit { 

    constructor(private router: Router) { 
    ... ? 
    } 

    ngOnInit(): void { 
    ... ? 
    } 
} 

回答

0
import { Component, OnDestroy, OnInit } from '@angular/core'; 
import { Router, ActivatedRoute, Params } from '@angular/router'; 
import { Subscription } from 'rxjs/Subscription'; 

export class AppComponent implements OnInit, OnDestroy { 
    private var1: string; 
    private var2: string; 
    private sub: Subscription; 

    constructor(
    private route: ActivatedRoute, 
    private router: Router 
) {} 

    ngOnInit() { 
    // assign the subscription to a variable so we can unsubscribe to prevent memory leaks 
    this.sub = this.route.queryParams.subscribe((params: Params) => { 
     this.var1 = params['var1']; 
     this.var2 = params['var2']; 
    }); 

    console.log(this.var1, this.var2); 
    } 

    ngOnDestroy() { 
    this.sub.unsubscribe(); 
    } 
... 
} 
+0

這不適用於矩陣網址 – BenRacicot