如何在Angular中启动应用程序时调用服务?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Angular中启动应用程序时调用服务?相关的知识,希望对你有一定的参考价值。
我有一个routing-back-service
,负载开始识别路线。在我的一个组件(成员配置文件)中,我想使用此服务使后退按钮作为浏览器后退按钮来获取前一个URL。
这样做的问题是,如果我在点击返回时从member-profile组件调用该服务,那么它第一次没有获得上一个路由,并且以后工作正常。
如何在应用程序启动时调用此服务,以便它可以从一开始就识别路由?
routing-back.service
import Injectable from '@angular/core';
import filter, pairwise from 'rxjs/operators';
import Router, RoutesRecognized from '@angular/router';
@Injectable(
providedIn: 'root'
)
export class RoutingBackService
private previousUrl: string;
constructor(private router: Router)
this.router.events
.pipe(filter((e: any) => e instanceof RoutesRecognized),
pairwise()
).subscribe((e: any) =>
this.previousUrl = e[0].urlAfterRedirects;
);
public getPreviousUrl()
return this.previousUrl;
member-profile.ts
goBack()
const currentUser = this.userService.get();
if (currentUser.isUserAdmin)
this.previousUrl = this.back.getPreviousUrl();
this.router.navigate([ this.previousUrl ]);
else
this.router.navigate([ '/' ]);
答案
可以将它放在应用程序级别.ts文件的NgOnInit方法中吗?
以上是关于如何在Angular中启动应用程序时调用服务?的主要内容,如果未能解决你的问题,请参考以下文章
使用 JqueryMobile 在 phoneGap 中启动应用程序时调用服务器
Angular 2 Dashboard 应用程序 web api 在初始化时调用