我使用angular 2.0.0
并且我有一个这样的 URL:
http://localhost:4200/?sptoken=MY_TOKEN#/resetPassword/
我想从中得到MY_TOKEN
。我尝试了我能在这里找到的一切,但我只得到“ undefined
”。
第二个问题是我使用标签定位策略,如果我像这样访问 URL,它会转换为http://localhost:4200/#/resetPassword/(查询字符串消失),这是我唯一可以访问的时间令牌在转换之前位于主要组件中,但我不知道如何获取它,我发现的大部分内容都是指矩阵表示法查询参数。
你对我如何解决这个问题有什么建议吗?
这是我的代码:
export class ResetPasswordComponent implements OnInit {
constructor(private route: ActivatedRoute) {
console.log(this.route.snapshot.queryParams['sptoken']); // when i don't use
//HashLocationStrategy it logs the token
}
}
export class AppComponent implements OnInit {
constructor(private router: Router, public configService: ConfigService, private cookieService: CookieService,private route: ActivatedRoute) {
console.log(this.route.snapshot.queryParams['sptoken']);
}
}
还有我的路线:
const appRoutes: Routes = [
{path: UrlPaths.HELLO, component: HelloComponent, canActivate: [PrivatePageGuard]},
{path: UrlPaths.LOGIN, component: LoginComponent},
{path: UrlPaths.MAIN_PAGE, component: AppComponent},
{path: UrlPaths.FORGOT_PASSWORD, component: ForgotPasswordComponent},
{path: UrlPaths.RESET_PASSWORD, component: ResetPasswordComponent}
];
export const appRoutingProviders: any[] = [];
export const routing: ModuleWithProviders = RouterModule.forRoot(appRoutes);
export const UrlPaths = Object.freeze({
LOGIN: 'login',
HELLO: 'hello',
FORGOT_PASSWORD: 'forgotPassword',
RESET_PASSWORD: 'resetPassword',
MAIN_PAGE: ''
});
我还尝试使用此 URL 尝试在主组件中获取令牌:http://localhost:4200/?sptoken=MY_TOKEN#
但它发生的情况相同