В угловых 4 проекта, когда я удалил # из URL.После удаления # я столкнулся с проблемой обновления страницы - PullRequest
0 голосов
/ 18 февраля 2019

Когда я удаляю # из углового проекта 4, используя следующий код.в файле app.module.ts

imports: [
...
RouterModule.forRoot(routes, { useHash: true })  // remove second argument
]

и в провайдерах

@NgModule({
.....
providers: [
  // Below line is optional as default LocationStrategy is 
PathLocationStrategy
{provide: LocationStrategy, useClass: PathLocationStrategy} 
 ]
})

, используя этот код, я могу удалить # из URL.Но когда я обновляю страницу, она переходит на localhost: 4200.Ранее (с #, когда у меня была страница обновления) она не переходит на страницу по умолчанию localhost: 4200. Как обработать эту ошибку обновления без # в url в угловых значениях 4

1 Ответ

0 голосов
/ 05 марта 2019
Add this in App component 

When refresh it will load app component ngOninit

get token or Return url values using router

      const id = this.route.snapshot.params['token'];
        const returnUrl = this.route.snapshot.params['returnUrl'];
        if (id && returnUrl) {
            const appUser = new AppUser();
            appUser.id = id;
            appUser.user = new UserInfo();
            this._storage.setObj('token', appUser);
            const encodedReturnUrl = decodeURIComponent(returnUrl);
            this._authService.populate(encodedReturnUrl);
        } else {
            this._authService.populate();
        }

Служба аутентификации - это основные модули, которые будут аутентифицироваться при входе в систему и обновлении.

Получение текущих данных пользователя со значениями токенов в компоненте приложения.

 populate(returnUrl: string = '') {

      if (!returnUrl) {
              this.router.navigate([/login]);
                        } else {
       this.router.navigate([returnUrl]);
                        }
        }
...