我有一个看起来像这样的URL:
https://localhost:8080/user/login
但是,可以手动附加查询参数,以使URL看起来像这样。
https://localhost:8080/user/login?ten=123456
所以我需要一个通配符,在“登录”一词之后使用该通配符。
我的URL在这样的常量对象中定义:
export const Constants = {
routing: {
home: '/',
userLogin: '/user/login',
}
.. and的用法如下:
const routing = Constants.routing;
const url = this.routing.userLogin
答案 0 :(得分:2)
使用组件中的Router.navigate
导航到您的网址
import { Router } from "@angular/router"
constructor(private router : Router){}
navigateToUserLogin(){
this.router.navigate([url], { queryParams: { ten: 123456 } });
}
您可以在用户登录组件中使用ActivatedRoute
来提取网址的查询参数
import { ActivatedRoute } from '@angular/router';
constructor(private route: ActivatedRoute) { }
ngOnInit(){
this.route.queryParams.subscribe(params=> { console.log(params); });
}
答案 1 :(得分:0)
我现在不明白你的问题吗?
在“ login”一词之后提取所有内容的正则表达式为:
(?<=login).*$
如何在组件中应用
public ngOnInit(): void {
let regex = new RegExp("(?<=login).*$");
const matches = regex.exec(window.location.href);
if(matches.length>0){
this.href=matches[0];
}
}
要使用带有角的queryparams进行路由,可以将NavigationExtras与queryParams属性一起使用:
router.navigate(["user", "login"], { queryParams: { ten: "123456" } });
并使用路由器链接
<a [routerLink]="["user", "login"]" [queryParams]="{ ten: '123456' }">Login</a>