在Angular中,如果路由器无法解析所需的参数,通常是因为路由定义或路由参数的问题。以下是一些解决方法的示例代码:
// 路由定义
const routes: Routes = [
{ path: 'user/:id', component: UserComponent }
];
ActivatedRoute
服务来获取路由参数。import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
@Component({
selector: 'app-user',
templateUrl: './user.component.html',
styleUrls: ['./user.component.css']
})
export class UserComponent implements OnInit {
userId: string;
constructor(private route: ActivatedRoute) { }
ngOnInit() {
this.route.params.subscribe(params => {
this.userId = params['id'];
});
}
}
:
和?
来指定可选参数。// 路由定义
const routes: Routes = [
{ path: 'user/:id/:name?', component: UserComponent }
];
+
运算符将字符串转换为数字。this.route.params.subscribe(params => {
this.userId = +params['id'];
});
以上是一些常见的解决方法,希望能帮助到你解决Angular路由器无法解析所需参数的问题。