如何在Angular 2/5中找到来自RouterLinkWithHref的匹配路由?

时间:2018-05-09 12:44:29

标签: angular angular5 angular2-directives angular2-router

我正在尝试使用指令隐藏/删除菜单/子菜单项。

我正在使用@ContentChild读取RouterLinkWithHref,但找不到Route。我有兴趣阅读路线中提供的数据对象。

下面是一些更有意义的代码。让我知道,如果有什么东西可以回答或深入挖掘。

@Directive({
  selector: '[roleCheck]'
})
export class RoleCheckDirective implements AfterViewInit {

  @ContentChild(RouterLinkWithHref) routerLinkWithHref: RouterLinkWithHref;

  constructor(private elementRef: ElementRef) { }

  ngAfterViewInit() {
    console.log(this.routerLinkWithHref);

    // do something here to find matched route, and read route.data for allowed roles

  }
}

在主路线下面有包含角色的数据。 Angular从RouterLink和RouterLinkWithHref中找到匹配的路由。 Angular还提供RouterLinkActive,必须读取RouterLink / RouterLinkWithHref以在导航菜单中显示活动路由。所以,问题是如何,哪些方法可用。我怎么能看到他们的实施。我正在使用带有打字稿的角度。我已经看到了RouterLinkActive的类型。任何帮助表示赞赏。

const routes = [
  { path: '', redirectTo: 'home', pathMatch: 'full' },
  { path: 'home', component: HomeComponent, data: { roles: ['Admin', 'Analyst']} },
...
];

enter image description here

0 个答案:

没有答案