gpt4 book ai didi

angular - ActivatedRoute 在服务中不起作用

转载 作者:太空狗 更新时间:2023-10-29 17:35:31 25 4
gpt4 key购买 nike

服务中的 ActivatedRoute

问题

我试图在服务中使用 ActivatedRoute 并注意到它似乎没有跟踪我当前所在的路线。事实上,它似乎不会选择任何路线。我花了很长时间才弄清楚发生了什么,而且我无法在网上找到很多有用的答案(可能是因为大多数人都比我快得多:))。

只是想确保我发布了一些内容,以便其他人可以更快地找到解决方案。

这是我遇到问题时代码的样子。

@Injectable()
export class ImdbService {

constructor(private router: Router,
private route: ActivatedRoute) {
}

closeDetails(): void {
this.detailsOpened = false;
this.router.navigate(['../'], {relativeTo: this.route});
}

最佳答案

我的解决方案

因为服务在注入(inject)组件时似乎与 ActivatedRoute 没有相同的交互,我的解决方案是在我使用的服务调用中将 ActivatedRoute 作为参数传递。

这是对我有用的解决方案:

@Injectable()
export class ImdbService {

constructor(private router: Router) {
}

closeDetails(currentRoute): void {
this.detailsOpened = false;
this.router.navigate(['../'], {relativeTo: currentRoute});
}

在组件中:

export class MovieDetailsComponent implements OnInit, OnDestroy {

constructor(..., private route: ActivatedRoute ) { }

closeDetails() {
this.imdbService.closeDetails(this.route);
}

有更好的东西吗?

如果有人对此问题有更好甚至不同的解决方案,或者如果有充分的理由以完全不同的方式做到这一点,我很乐意看到它。

关于angular - ActivatedRoute 在服务中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47718356/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com