在Angular 2中,我希望能夠使用route.path
..獲取路徑。Angular 2獲取路線沒有提供路線
裏面一個部件構造器,我有:
constructor(private route: Route) {}
所以我想能夠調用:
this.route.path
而對於應用程序引導我:
bootstrap(AppComponent,
[
ROUTER_PROVIDERS,
]);
但我仍然得到沒有供應商的路線!錯誤
在Angular 2中,我希望能夠使用route.path
..獲取路徑。Angular 2獲取路線沒有提供路線
裏面一個部件構造器,我有:
constructor(private route: Route) {}
所以我想能夠調用:
this.route.path
而對於應用程序引導我:
bootstrap(AppComponent,
[
ROUTER_PROVIDERS,
]);
但我仍然得到沒有供應商的路線!錯誤
我假設你注入Location
而不是Route
。 Route
用於路由配置,Angular無法知道要注入哪個Route
實例。
Location
提供了path()
函數來獲取當前URL。
根據Angular2版本的不同,從哪裏可以導入它。
參見Location and HashLocationStrategy stopped working in beta.16
< = 15的β
import {Location} from 'angular2/router';
> = 16的β< rc.0
import {Location} from 'angular2/platform/common';
constructor(private location:Location) {
console.log(location.path());
}
> = rc.0
import {Location} from '@angular/common';
您設置了正確的軌道,它必須是'@ angular/common'的import {Location}; '因爲2.0.0-rc.0如果你添加這個,我會接受:) – RobSeg
對,忘了它又改了 –
的Route
類可以被注入。您可以注入Router
一個或RouteParams
:
constructor(private router:Router,private params:RouteParams) {
this.id = params.get('id');
}
如果您需要在當前路由的路徑,而注入的Location
類,並使用其path
方法
constructor(private location:Location) {
var path = location.path();
}
從哪裏導入RouteParams post beta(rc.1)。它無法從@ angular/router中導入它,我無法找到它在任何地方說的地方。 – mottosson
與ROUTER_BINDINGS試試吧。
ROUTER_BINDINGS已被棄用(使用ROUTER_PROVIDERS代替),因爲alpha41 – RobSeg
太短而無法回答,您也可以將其用作評論。 –
如果在構造函數之外使用,只需將構造函數中的修飾符改爲public – mayur