Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Angular 5中的路由文件重定向具有条件的页面 我想从我的app routing.module.ts文件重定向页面 我有两个域I)abcd.in ii)abcd.hk,因此我想在两个域的不同页面中重定向_Angular_Routing_Angular5 - Fatal编程技术网

从Angular 5中的路由文件重定向具有条件的页面 我想从我的app routing.module.ts文件重定向页面 我有两个域I)abcd.in ii)abcd.hk,因此我想在两个域的不同页面中重定向

从Angular 5中的路由文件重定向具有条件的页面 我想从我的app routing.module.ts文件重定向页面 我有两个域I)abcd.in ii)abcd.hk,因此我想在两个域的不同页面中重定向,angular,routing,angular5,Angular,Routing,Angular5,下面是我的路由文件代码 { path: 'login', loadChildren: './login/login.module#LoginModule', canActivate: [GuestGuard], }, { path: '', loadChildren: './main-page/main-page.module#MainPageModule', canActivate: [GuestGuard], } 当我的域名是abcd.hk

下面是我的路由文件代码

{
    path: 'login',
    loadChildren: './login/login.module#LoginModule',
    canActivate: [GuestGuard],
},
{
    path: '',
    loadChildren: './main-page/main-page.module#MainPageModule',
    canActivate: [GuestGuard],
}
当我的域名是abcd.hk时,我想在登录路径上重定向,否则在第二路径上重定向

试试这个

    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;
        }
      }
    }
从'@angular/core'导入{Injectable};
从导入{CanActivate,ActivatedRouteSnapshot,RouterStateSnashot}
'角度/路由器';
从“rxjs/Observable”导入{Observable};
从“/auth.service”导入{AuthService};
从'@angular/Router'导入{Router};
@可注射()
导出类GuestGuard实现CanActivate{
构造函数(私有auth:AuthService,
专用myRoute(路由器){
}
激活(
下一步:ActivatedRouteSnapshot,
状态:RouterStateSnashot):可观察的|承诺|布尔值{
this.myRoute.parent.url.subscribe(urlPath=>{
this.url=urlPath[urlPath.length-1].path;
});
}
如果(this.url=='abcd.hk'){
this.myRoute.navigate(['/login]);
返回true;
}否则{
返回false;
}
}
}
试试这个

    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;
        }
      }
    }
从'@angular/core'导入{Injectable};
从导入{CanActivate,ActivatedRouteSnapshot,RouterStateSnashot}
'角度/路由器';
从“rxjs/Observable”导入{Observable};
从“/auth.service”导入{AuthService};
从'@angular/Router'导入{Router};
@可注射()
导出类GuestGuard实现CanActivate{
构造函数(私有auth:AuthService,
专用myRoute(路由器){
}
激活(
下一步:ActivatedRouteSnapshot,
状态:RouterStateSnashot):可观察的|承诺|布尔值{
this.myRoute.parent.url.subscribe(urlPath=>{
this.url=urlPath[urlPath.length-1].path;
});
}
如果(this.url=='abcd.hk'){
this.myRoute.navigate(['/login]);
返回true;
}否则{
返回false;
}
}
}

您可以在检查

location.hostname
在app.component.ts中,通过在构造函数中引入路由器

如果

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

        }



您可以在检查屏幕时执行此操作

location.hostname
在app.component.ts中,通过在构造函数中引入路由器

如果

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

        }



没有authguard是可能的?你可以使用一个防护装置来实现这一点。没有authguard是可能的?你可以使用一个防护装置来实现这一点。