Angular 如何使用snapshot或ActivateRoute订阅服务器从URL中获取id?
我使用snapshot方法获取值,但在本例中,它是在“classes”之后获取值20,但我需要33个路径,如获取Angular 如何使用snapshot或ActivateRoute订阅服务器从URL中获取id?,angular,angular-router,angular-activatedroute,Angular,Angular Router,Angular Activatedroute,我使用snapshot方法获取值,但在本例中,它是在“classes”之后获取值20,但我需要33个路径,如获取 credits/33/classes/20 only 20 or credits/33/classes/ only null("") 更新: 我找到了我问题的答案 现在它正在正确地获取id。错误在于访问正确子组件中的元素,在快照版本中子组件的MatDialog组件中不起作用 constructor(private route: ActivatedRoute) {
credits/33/classes/20 only 20 or credits/33/classes/ only null("")
更新:
我找到了我问题的答案
现在它正在正确地获取id。错误在于访问正确子组件中的元素,在快照版本中子组件的MatDialog组件中不起作用
constructor(private route: ActivatedRoute) {}
ngOnInit(): void {
console.log(parseInt(this.route.snapshot.paramMap.get('id1')));
如果url有2个Id值,则可以使用route.parent的快照
您在路由模块中的路径将为
const appRoutes: Routes = [
{ path: 'credits/:id1/classes/:id2', component: YourComponent }];
假设id1为33,则
id2是20
守则如下:
使用ActivatedRoute而不是ActivatedRouteSnapshot
import { ActivatedRoute } from '@angular/router';
constructor(private route: ActivatedRoute) {
ngOnInit() {
this.route.params
.subscribe(
(params: Params) => {
this.id1 = +params['id1'];
this.id2 = +params['id2'];
console.log(id1 + '' + id2);
}
);
}
}
创建将路由到组件的路由,并将其添加到模块中
const appRoutes: Routes = [
{ path: 'credits/:id1/classes/:id2', component: MyComponent },
{ path: 'credits/:id1', component: MyComponent }];
然后,您可以使用ActivatedRoute
获取参数
export class MyComponent implements {
id1: string;
id2: string;
constructor(private route: ActivatedRoute) {
this.id1 = this.route.snapshot.params['id1'];
this.id2 = this.route.snapshot.params['id2'];
}
}
export class MyComponent implements {
id1: string;
id2: string;
constructor(private route: ActivatedRoute) {
this.id1 = this.route.snapshot.params['id1'];
this.id2 = this.route.snapshot.params['id2'];
}
}