从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是可能的?你可以使用一个防护装置来实现这一点。