Angular 2:无法解析ActivatedRoute的所有参数

时间:2017-12-20 11:32:35

标签: angular

我已经为activedroute添加了提供程序,现在它给出了这个错误,我想获取查询字符串参数,例如:http://localhost:4200/?user=hello

我想得到用户的价值,这是我的代码:

import { Component, OnInit, Input } from '@angular/core';
import {Router, ActivatedRoute, Params} from '@angular/router';



@Component({
selector: 'app-login',
templateUrl: './login.html'
})

export class LoginBancaComponent implements OnInit  {

constructor(private route: ActivatedRoute){}



ngOnInit() {
this.activatedRoute.params.subscribe((params: Params) => {
    let str= params['user'];
    console.log(str);
  });
 }


}

但在控制台页面上有这样的错误:

  

无法解决ActivatedRoute的所有参数:(?,?,?,?,?,?,?,   ?)。

我已在模块中导入所有内容:

import {Router, ActivatedRoute, Params} from '@angular/router';
...
imports: [
BrowserModule,
CommonModule, RouterModule,
],
providers: [ActivatedRoute],
...

为什么会出现此错误?

2 个答案:

答案 0 :(得分:5)

您不需要自己提供ActivatedRouteRouterModule已经提供了ActivatedRoute。您收到此错误,因为providers可能还有其他您未提供的依赖项。只需将其从模块中的{{1}}数组中删除即可。

答案 1 :(得分:1)

// 1. inject activatedRoute with name 'route'
constructor(private route: ActivatedRoute){ }

ngOnInit() {
    // 2. use right name 'route' as injected above
    this.route.params.subscribe((params: Params) => {
        let str = params['user'];
        console.log(str);
    });
}