首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular 2:获取应用引导时的查询参数(重定向前)

Angular 2:获取应用引导时的查询参数(重定向前)
EN

Stack Overflow用户
提问于 2017-06-04 22:36:07
回答 2查看 1.9K关注 0票数 2

目前,我正在实现一个嵌入式聊天系统,允许用户将客户端聊天应用程序嵌入到他们的网站中。使用angular 2(版本4)的客户端聊天应用程序。有两种类型的用户,代理和客户端。客户将使用其凭据和网站ID (代理注册其网站时创建)进行标识。因此,我需要将网站ID传递到客户端应用程序的每个请求中。我打算把这个网站ID放入url作为查询参数。但是,当应用程序启动时,我无法获得此值。

URL如下所示:

代码语言:javascript
复制
http://localhost:3000?site=123456

app路由如下,初始化时会根据登录状态重定向根路径:

代码语言:javascript
复制
const routes: Routes = [
    {
        path: '',
        redirectTo: '/chat',
        pathMatch: 'full'
    }
];

在app组件中,我尝试像这样捕获查询参数:

代码语言:javascript
复制
import { Component, OnInit, ViewEncapsulation } from '@angular/core';
import {
    ActivatedRoute, Router, RouterState,
    RouterStateSnapshot
} from "@angular/router";

@Component({
    selector: 'app-root',
    templateUrl: './app.component.html',
    styleUrls: ['./app.component.scss'],
    encapsulation: ViewEncapsulation.None

})
export class AppComponent implements OnInit {
    title = 'app works!';

    constructor(private router: Router,
                private activatedRoute: ActivatedRoute) {
        //
    }

    ngOnInit() {
        this.activatedRoute.queryParams.subscribe(p => console.log(p)); // result empty

        console.log(this.router.routerState.snapshot.root.queryParams); // result empty
    }
}

假设用户已经登录,应用程序将重定向到http://localhost:3000/chat,并且我尝试捕获的queryParams返回空(在ngOnInit方法中),url中的查询参数也像http://localhost:3000/chat一样消失。如果我将查询参数放在slug /chat (例如http://localhost:3000/chat?site=123456)之后,我可以捕获该值,而查询参数仍保留在url中。我怀疑是重定向导致了这一点,谁能指出我哪里错了?谢谢。

EN

回答 2

Stack Overflow用户

发布于 2017-12-26 17:23:56

您必须将路由器模块设置为使用散列,它将在app.module替换RouterModule中工作

RouterModule.forRoot(路由,{useHash:true}),

票数 1
EN

Stack Overflow用户

发布于 2018-02-04 18:14:04

您可以使用Guard在路由器更改之前请求路由

函数canActivate可以获取activateRoute: ActivatedRouteSnapshot,状态: RouterStateSnapshot作为参数,查询参数的值在state.root.queryParams.site中找到

不要忘记从函数中返回true值

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44355226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档