我正在使用快照方法获得价值,但它是在“类”路径之后获得价值,例如获得
credits/33/classes/20 only 20 or credits/33/classes/ only null("")
更新:我找到了解决问题的方法。
现在它已正确获取ID。错误是访问正确的子组件中的元素,而不是在Snapshot版本中的子MatDialog组件中工作。
constructor(private route: ActivatedRoute) {}
ngOnInit(): void {
console.log(parseInt(this.route.parent.snapshot.paramMap.get('id')));
}
您在路由模块中的路径将是
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'];
}
}