Angular 如何设置相对路径的字符串

Angular 如何设置相对路径的字符串,angular,typescript,Angular,Typescript,我想创建一个链接,供用户单击以验证其电子邮件。为此,我需要创建链接。如何将this.router转换为字符串?我还需要检索用户的用户id。如果不可能,我可以创建一个在相对路径中传递的字符串吗 我试过这个: let loginRoute = this.router.navigateByUrl("./login", { queryParams: { key: data.id } }); 但显然它不起作用,因为它.navigateByUrl返回一个布尔结果 constructor(pr

我想创建一个链接,供用户单击以验证其电子邮件。为此,我需要创建链接。如何将
this.router
转换为字符串?我还需要检索用户的用户id。如果不可能,我可以创建一个在相对路径中传递的字符串吗

我试过这个:

let loginRoute = this.router.navigateByUrl("./login", {
      queryParams: { key: data.id }
});
但显然它不起作用,因为它
.navigateByUrl
返回一个布尔结果

 constructor(private route: ActivatedRoute) {}

  ngOnInit() {
    this.sub = this.route.params.subscribe(params => {
       this.id = +params['id'];
    });
这可以在查询参数中获取id

如果你想要这个域名,请这样做-

const parsedUrl = new URL(window.location.href);
const baseUrl = parsedUrl.origin;
console.log(baseUrl);
这可以在查询参数中获取id

如果你想要这个域名,请这样做-

const parsedUrl = new URL(window.location.href);
const baseUrl = parsedUrl.origin;
console.log(baseUrl);

使用
DOCUMENT
Router
创建带有参数的URL字符串

平台浏览器
和路由器表单@angular/Router将文档导入组件

import { DOCUMENT } from '@angular/platform-browser';

import { Router } from '@angular/router';
初始化构造函数

  constructor(
    private router: Router,
    @Inject(DOCUMENT) private document: any
  ) {}
使用

  ngOnInit() {
    let domain = this.document.location.hostname;
    this.href = this.router.url;
    console.log(domain+this.href)
  }
工作示例-代码位于子组件中


-----------评论后编辑-----------------

使用文档获取该域的域/主机名和concat参数

import { DOCUMENT } from '@angular/platform-browser';
import {ActivatedRoute} from '@angular/router';
constructor(
        @Inject(DOCUMENT) private document: any,
        private route:ActivatedRoute

      ) {}

ngOnInit() {
        let domain = this.document.location.hostname;
        let userId = this.route.snapshot.params['userId'];
        console.log(domain+'?user='+userId)
      }

使用
DOCUMENT
Router
创建带有参数的URL字符串

平台浏览器
和路由器表单@angular/Router将文档导入组件

import { DOCUMENT } from '@angular/platform-browser';

import { Router } from '@angular/router';
初始化构造函数

  constructor(
    private router: Router,
    @Inject(DOCUMENT) private document: any
  ) {}
使用

  ngOnInit() {
    let domain = this.document.location.hostname;
    this.href = this.router.url;
    console.log(domain+this.href)
  }
工作示例-代码位于子组件中


-----------评论后编辑-----------------

使用文档获取该域的域/主机名和concat参数

import { DOCUMENT } from '@angular/platform-browser';
import {ActivatedRoute} from '@angular/router';
constructor(
        @Inject(DOCUMENT) private document: any,
        private route:ActivatedRoute

      ) {}

ngOnInit() {
        let domain = this.document.location.hostname;
        let userId = this.route.snapshot.params['userId'];
        console.log(domain+'?user='+userId)
      }


到目前为止你做了什么。给我看看code@TonyNgo添加了代码您可以使用ActivatedRoute.params,然后从您的路由器订阅参数。@Nuttertools您可以发布答案吗?下面链接中的答案可能有助于解决您的问题!到目前为止你做了什么。给我看看code@TonyNgo添加了代码您可以使用ActivatedRoute.params,然后从您的路由器订阅参数。@Nuttertools您可以发布答案吗?下面链接中的答案可能有助于解决您的问题!我认为这个解决方案行不通。这将使用当前url。在我的例子中,我想将一个相对路径(而不是当前url)转换成一个字符串,同时在后面添加用户id。我正在我的身份验证服务中这样做。将数据添加到数据库后,我将获得创建为参数的id扫描您发布的示例URL,您正在尝试创建该URL吗?以及通过服务获取的参数示例:localhost:4200/login?uid=。因此,我想字符串相对路径,所以基本上你只需要一个当前域名,你已经知道如何获取其他参数,如/login?uid=我认为这个解决方案不起作用。这将使用当前url。在我的例子中,我想将一个相对路径(而不是当前url)转换成一个字符串,同时在后面添加用户id。我正在我的身份验证服务中这样做。将数据添加到数据库后,我将获得创建为参数的id扫描您发布的示例URL,您正在尝试创建该URL吗?以及通过服务获取的参数示例:localhost:4200/login?uid=。因此,我想字符串一个相对路径,所以基本上您只需要一个当前域名,并且您已经知道如何获取其他参数,如/login?uid=this.sub和this.id的数据类型是什么?我在需要将它们转换为stringid:number时出错;sub:subscription
this.sub
this.id
的数据类型是什么?我在需要将它们转换为stringid:number时出错;sub:订阅