Страница перенаправления с условием из файла маршрутизации в Angular 5 - PullRequest
0 голосов
/ 18 октября 2019
  1. Я хочу перенаправить страницу из моего app-routing.module.ts файла
  2. У меня есть два домена i) abcd.in ii) abcd.hk , поэтому я хочу перенаправить вдругая страница из обоих доменов
  3. Ниже приведен код моего файла маршрутизации

    {
        path: 'login',
        loadChildren: './login/login.module#LoginModule',
        canActivate: [GuestGuard],
    },
    {
        path: '',
        loadChildren: './main-page/main-page.module#MainPageModule',
        canActivate: [GuestGuard],
    }
    

Я хочу перенаправить на логин путь, когда мой домен abcd.hk в противном случае на второй путь

Ответы [ 2 ]

2 голосов
/ 18 октября 2019

Вы можете сделать это при проверке

location.hostname

в app.component.ts, приняв маршрутизатор в конструкторе

Если

if( location.hostname == "abcd.hk")
   this.router.navigate(['/login]);
    else{
         this.router.navigate(['']);

        }


0 голосов
/ 18 октября 2019

попробуйте это.

    import { Injectable } from '@angular/core';
    import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from 
    '@angular/router';
    import { Observable } from 'rxjs/Observable';
    import { AuthService } from './auth.service';
    import {Router} from '@angular/router';
    @Injectable()
    export class GuestGuard implements CanActivate {
      constructor(private auth: AuthService,
        private myRoute: Router){
      }
      canActivate(
            next: ActivatedRouteSnapshot,
            state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {

        this.myRoute.parent.url.subscribe(urlPath => {
          this.url = urlPath[urlPath.length - 1].path;
        });
      }

   if(this.url === 'abcd.hk'){
        this.myRoute.navigate(['/login]);
         return true;
        } else{
          return false;
        }
      }
    }
...