我正在尝试做与此帖中完全相同的事情:Angular 4 get queryString
我使用的是Angular 5.2.5。
ActivatedRoute似乎是用户首次访问网站时从URL检索查询字符串值的东西。但是,我无法弄清楚我需要导入什么才能使用ActivatedRoute。
有人可以确切地指定需要添加到app.module.ts文件的内容,以及我尝试使用ActivatedRoute的component.ts文件吗?
这篇文章指定将路由添加到@NgModule的导入数组:No provider for ActivatedRoute - Angular 2 RC5。但是,我没有app.routing.ts文件。我是否必须创建app.routing.ts文件才能使用ActivatedRoute?
答案 0 :(得分:2)
我做了Arun建议的两个改变。然后,为了修复“没有ActivatedRoute的提供程序”错误,我做了如下所示的更改。
1)我将此行添加到app.module.ts:
import { RouterModule } from '@angular/router';
2)我将此行添加到app.module.ts中@NgModule的imports数组中:
RouterModule.forRoot([])
这篇文章给了我修复:Angular error: no provider for ActivatedRoute
现在它编译。万岁!
答案 1 :(得分:0)
您需要从@ angular / router中导入ActivatedRoute,如
import { ActivatedRoute } from '@angular/router';
然后将此行添加到app.module.ts中@NgModule的imports数组中:
imports:[
........,
RouterModule.forRoot()
],
然后您可以使用以下任何位置:
constructor(private route: ActivatedRoute) {
console.log(route.snapshot.queryParamMap); // this
}
// or
queryString : string;
getQueryString(){
this.queryString = this.route.queryParamMap.get('myQueryParam');
}
没有。如果您不必在应用中导航页面,则不需要app.routing.ts。
答案 2 :(得分:0)
ActivatedRoute 包含有关与插座中加载的组件关联的路由的信息。
它还可以使用ID,标志,状态等路由将数据从one component
传递到another component
。
http://localhost:4200/quiz/edit_quiz/032
032
是您要编辑的测验的id
。
在您的组件中获取此ID(在我的情况下为 edit_quiz.compontent.ts ),以使用“激活的路由”来使用。
步骤1:从路由器模块导入ActivatedRoute。
import { ActivatedRoute } from '@angular/router';
步骤2:在构造函数中注入ActivatedRoute。
constructor(private activatedRoute: ActivatedRoute) { }
步骤3:获取quizId
ngOnInit(){}
的局部变量的ID
ngOnInit() {
this.quiz_id = this.activatedRoute.snapshot.params['id'];
}
现在我们在edit_quiz.component.ts
中有ID供使用。
答案 3 :(得分:0)
激活路线
我来晚了,但希望以下内容对遇到相同问题的未来程序员有用。
导入ActivatedRoute
import { ActivatedRoute } from '@angular/router';
注入依赖项注入
constructor(
private route: ActivatedRoute,
) { }
并从链接中获取ID,您可以使用以下
ngOnInit() {
this.route.paramMap.subscribe(params => {
this.product = products[+params.get('productId')];
});
}
答案 4 :(得分:0)
如何获取路由参数: Angular Router提供了两种获取路由参数的方法:
a。使用路由快照(ActivatedRoute),
b。使用路由器可观察物
Angular中的ActivatedRoute: 提供对有关与插座中加载的组件关联的路线的信息的访问权限
步骤1 导入ActivatedRoute接口
de-CH,fr-CH,it-CH
第2步将激活的路由注入构造函数中
import { Router, ActivatedRoute } from '@angular/router';
步骤3 通过给定的ID提取员工对象并将该对象分配给其本地员工属性。
constructor(private route: ActivatedRoute, private router: Router) {}
注意:属性说明
ngOnInit() {
this.employee = new Employee();
this.id = this.route.snapshot.params['id'];