Я пытаюсь получить параметр URL из следующего URL
http://localhost:4200/#/candidate/login/?corporateid=66d8c83c-841a-42e8-945c-beb8c1af25ef&userid=cb2147ed-bd42-4b9f-82d4-0dcef861e24d&token=CfDJ8Ie7+UQ8GQRBtQNOMB6ytQXk0OvqW+/l9W1yh3gCLQw7Sa606eaQtWAC472uUrsUnMQtt69R4gF7f6aab/lIdToo9AfiwtJ7wlsdYnomPpo1OgOaIUZZVBtEaBxRfuJin/Rl+WO+AnvHAn6v4Sf2yO+2gkNotCw0yLsfgzKYOwOciVRDHWY5mNktbGsRCb96kbnxd6VyW02Vs7szuSBG4Ow5fFdtvVUkQDj+ne4HZQAyvts8pNOOkNT/g+cCbOO/wA==
Значение параметра, которое мне нужно, - это идентификатор пользователя, но, похоже, я получаю нулевое значение.
Вот мой код
location = window.location;
urlHref = location.href;
urlConvert = new URL(this.urlHref);
if (location.toString().includes('userid')) {
this.userId = this.urlConvert.searchParams.get("userid");
console.info(this.userId);
} else {
this.userId = 'user';
console.info('gets user not candidate');
}
@PrashantPimpale я все еще получаю тот же результат
Не удается найти параметр userid
Вы можете использовать URLSearchParams
и его функцию .get
, чтобы получить значение строки запроса.
const str = 'http://localhost:4200/#/candidate/login/?corporateid=66d8c83c-841a-42e8-945c-beb8c1af25ef&userid=cb2147ed-bd42-4b9f-82d4-0dcef861e24d&token=CfDJ8Ie7+UQ8GQRBtQNOMB6ytQXk0OvqW+/l9W1yh3gCLQw7Sa606eaQtWAC472uUrsUnMQtt69R4gF7f6aab/lIdToo9AfiwtJ7wlsdYnomPpo1OgOaIUZZVBtEaBxRfuJin/Rl+WO+AnvHAn6v4Sf2yO+2gkNotCw0yLsfgzKYOwOciVRDHWY5mNktbGsRCb96kbnxd6VyW02Vs7szuSBG4Ow5fFdtvVUkQDj+ne4HZQAyvts8pNOOkNT/g+cCbOO/wA==';
const urlParams = new URLSearchParams(str);
const userId = urlParams.get('userid') || '';
console.info(userId);
вы также можете попробовать в целевом компоненте:
@Component({
selector: 'app-a',
template: `
<h1>A</h1>
<p> params: {{params | json}}</p>
<p> query params: {{queryParams | json}}</p>
<p> url: {{url}}</p>
<p> full url: {{fullUrl}}</p>`
})
export class AComponent {
params;
queryParams;
url;
fullUrl;
constructor(private route: ActivatedRoute, private router: Router ) { }
ngOnInit() {
this.params = this.route.snapshot.params;
this.queryParams = this.route.snapshot.queryParams;
this.url = this.route.snapshot.url.join('');
this.fullUrl = this.router.url;
}
}
рабочий ДЕМО
Вы можете использовать ActivatedRoute
, чтобы получить параметры маршрута. Кроме того, с помощью queryParamMap
можно получить всегда свежие параметры. Поскольку queryParamMap
возвращает Observable<ParamMap>
:
constructor(
private route: ActivatedRoute
)
this.route.queryParamMap.subscribe(params => {
let userId = params.get('userId ');
});
Попробуйте:
Route.params