在我的angular2應用程序中,我有一個通過路由加載的一堆子組件的外殼組件。Track Angular2當前路線
import {Component} from 'angular2/core';
import {Router, Route, RouteConfig, Location, ROUTER_DIRECTIVES, OnActivate, ComponentInstruction} from 'angular2/router';
import {Home} from './components/home/home';
import {About} from './components/about/about';
import {RepoBrowser} from './components/repo-browser/repo-browser';
@Component({
selector: 'seed-app',
providers: [],
templateUrl: 'app/seed-app.html',
directives: [ROUTER_DIRECTIVES],
pipes: []
})
@RouteConfig([
new Route({ path: '/home', component: Home, name: 'Home', useAsDefault: true }),
new Route({ path: '/about', component: About, name: 'About' }),
new Route({ path: '/github/...', component: RepoBrowser, name: 'RepoBrowser' })
])
export class SeedApp implements OnActivate {
route: string;
constructor(public router: Router) {
this.route = this.router.hostComponent.name;
}
routerOnActivate(next: ComponentInstruction, prev:ComponentInstruction) {
console.log('hi');
this.route = next.urlPath;
}
}
我想要做的是跟蹤在這個組件級別當前選擇的路線。正如你可以在我的構造函數中看到的,我試圖獲得this.router.hostComponent.name
,但它只是返回SeedApp。
我也嘗試使用routerOnActivate函數來獲取我們正在導航的那個,但是這個永遠不會被調用。
你到底要什麼樣的價值? URL,路由名稱,組件的名稱(current,child,...)? –
@GünterZöchbauer老實說,任何這些。我猜這條路線的名字是最簡單的 –
你想從中心位置知道路線名稱嗎?或者如果是當你去特定路線特定路線時知道路線名稱? – micronyks