简单的 Angular 2 问题:当我将 RouterStateSnapshot 注入(inject)登录组件的构造函数时,为什么会出现 DI(依赖注入(inject))错误?我试图在注销之前获取 url,因此我可以在用户重新登录时传递它(这样它将加载他们上次访问的组件/页面)。这比我预想的要困难得多。即使在将它导入并在我的构造函数中包含 RouterStateSnapshot 之后,我也会收到 DI 错误。这就是我在登录组件中设置它的方式:
import { ActivatedRoute, ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router';
constructor(private router: Router,
private route: ActivatedRoute,
private authenticationService: AuthenticationService,
private alertService: AlertService,
private state: RouterStateSnapshot,
private authGuardService: AuthGuardService,
private idle: Idle)
{
这里有什么问题?关于与 ActivatedRoute、ActivatedRouteSnapshot 等不同的 RouterStateSnapshot,我缺少什么 - 我可以毫无问题地导入和注入(inject)?为什么我不能以相同的方式注入(inject) RouterStateSnapshot?
顺便说一句,我可以毫无问题地在我的 authGuardService 中使用 RouterStateSnapshot。它在我的 canActivate() 函数中使用 - 并返回正确的结果。那么在这种情况下有什么不同呢?为什么我不能在我的登录组件中使用它?
最佳答案
我认为您可以从 RouterState
中获取 RouterStateSnapshot
。考虑这个例子:
constructor(private router: Router) {
let routerStateSnapshot = this.router.routerState.snapshot;
}
关于javascript - 为什么我不能将 RouterStateSnapshot 注入(inject)到 Angular 2 应用程序的登录组件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47064149/