【问题标题】:Angular 2 router send data with resolver don't workAngular 2路由器使用解析器发送数据不起作用
【发布时间】:2017-06-25 00:45:14
【问题描述】:

我的代码就是这样,但不起作用。我想在路由加载前检查用户信息。

我使用@angular/router:3.4.2

解析器类:

@Injectable()
export class UserRoleResolver implements Resolve<any> {

  resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): any {
    let user:any = {};
    user.role =  'MEMBER';
    return user;
  }
}

路由器:

export const APP_ROUTES: Routes = [
  {path: '', component: PublicComponent, children: PUBLIC_ROUTES},
  {
    path: '',
    component: SecureComponent,
    resolve: {userRole: UserRoleResolver},
    canActivate: [AuthGuard],
    children: SECURE_ROUTES
  }
];

安全组件:

export class SecureComponent implements OnInit {
  userRole:any;
  role:string = 'MEMBER';
  constructor(private userService: UserService,private router:Router) {
  }

  ngOnInit() {

    this.role = 'MEMBER';
    console.log('Role',this.userRole);

    if (!this.userService.isLoggedIn()) {
      this.router.navigateByUrl('/login');
    }
  }
}

【问题讨论】:

    标签: angular resolver angular2-router3


    【解决方案1】:

    我解决了我的问题。它在安全组件中:

    我在构造函数中添加private route: ActivatedRoute

    并致电ngOnInıt()

    this.userRole = this.route.snapshot.data['userRole'];
    

    【讨论】:

      猜你喜欢
      • 2016-12-28
      • 2017-03-03
      • 1970-01-01
      • 2016-03-21
      • 1970-01-01
      • 2017-04-06
      • 2017-01-01
      • 1970-01-01
      • 2016-10-06
      相关资源
      最近更新 更多