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:订阅