Angular 2获取路由没有提供者

时间:2016-05-06 08:28:03

标签: angular

在Angular 2中,我希望能够使用route.path来获取路径。

在组件构造函数中,我有:

constructor(private route: Route) {}

所以我希望能够致电:

this.route.path

对于app bootstrap,我得到了:

bootstrap(AppComponent,
[
    ROUTER_PROVIDERS,
]);

但我仍然得到无路由提供商!错误

3 个答案:

答案 0 :(得分:4)

我假设你要注射的是Location而不是RouteRoute用于路由配置,Angular无法知道要注入哪个Route实例。

Location提供path()函数来获取当前网址。

根据Angular2版本,有不同的路径从哪里导入。

另见Location and HashLocationStrategy stopped working in beta.16

< = beta 15

import {Location} from 'angular2/router';

> = beta 16< rc.0

import {Location} from 'angular2/platform/common';  
constructor(private location:Location) {
  console.log(location.path());
}

> = rc.0

import {Location} from '@angular/common';

答案 1 :(得分:0)

可以注入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();
}

答案 2 :(得分:0)

尝试使用ROUTER_BINDINGS。