我已经为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],
...
为什么会出现此错误?
答案 0 :(得分:5)
您不需要自己提供ActivatedRoute
,RouterModule
已经提供了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);
});
}