Angular 6 удаляет строку запроса из URL - PullRequest
0 голосов
/ 24 сентября 2018

Пример

http://localhost:4200/login?aUasas129198

разрешается до

http://localhost:4200/login

Что мне делать, если я хочу получить значение после '?'

Я пытался сделать

{ path: 'login/:id', component: LoginComponent },

Но это не сработало

Я тоже пытался

console.log(this.route.snapshot.queryParams);
console.log(this.route.snapshot.params);

Но они оба возвращают пустой объект.Что мне теперь делать, пожалуйста, помогите

Ответы [ 2 ]

0 голосов
/ 24 сентября 2018

Если неизбежно, что Angular перенаправит вас немедленно и потеряет параметры запроса, вы можете подписаться на события маршрутизатора, и на каждом NavigationStart для login маршруте захватить маршрут queryParamMap или snapshot.paramMap до того, как они потеряются в перенаправлении, вы можете, например, передать его в службу и сделать с ней все, что захотите.

Или, в качестве другой альтернативы, вы можете посмотретьв настройку маршрутизатора с queryParamsHandling: 'preserve', и в этом случае он должен передать параметры запроса следующему маршруту (см. раздел в Angular docs, связанный ниже, для получения дополнительной информации об этом).

Я работал с проектом, который сделалиспользование параметров запроса в Angular 5, IIRC Я не думаю, что он будет перенаправлять сам по себе, поэтому я рекомендую посмотреть в другом месте вашего проекта, но я могу ошибаться.

См. также

0 голосов
/ 24 сентября 2018

На самом деле, вы не передаете значение ни в одной клавише:

http://localhost:4200/login?aUasas129198

Правильный путь должен быть следующим:

http://localhost:4200/login?anykey=aUasas129198
// get it as
// this._ActivatedRoute.queryParams.subscribe()

Если вы используете URI, как показано в вашемвопрос как:

{ path: 'login/:id', component: LoginComponent }

Затем вы должны передать значение id как:

http://localhost:4200/login/aUasas129198
// remember the '/' after the login that you didn't use.
// get it as
// this._ActivatedRoute.snapshot.params.id
...