要解决在Angular中,服务中的路由参数返回null的问题,你可以尝试以下解决方法:
{
path: 'user/:id',
component: UserComponent
}
在该示例中,参数的名称是"id"。确保在服务中使用相同的名称来获取参数。
import { Injectable } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
@Injectable()
export class MyService {
constructor(private route: ActivatedRoute) {}
getParamValue() {
const id = this.route.snapshot.paramMap.get('id');
return id;
}
}
在上面的示例中,我们注入了ActivatedRoute服务,并使用它的snapshot属性来获取路由参数。getParamValue方法将返回路由参数的值。
import { Injectable } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
@Injectable()
export class MyService {
constructor(private route: ActivatedRoute) {}
getParamValue() {
this.route.params.subscribe(params => {
const id = params['id'];
console.log(id);
});
}
}
在上面的示例中,我们使用params属性来订阅路由参数的变化。每当参数发生变化时,回调函数将被调用,并且你可以在其中获取参数的新值。
希望这些解决方法可以帮助你解决Angular中服务中路由参数返回null的问题。