Как найти соответствующий маршрут от RouterLinkWithHref в Angular 2/5? - PullRequest
0 голосов
/ 09 мая 2018

Я пытаюсь скрыть / удалить элементы меню / подменю, используя директиву.

Я читаю RouterLinkWithHref, используя @ContentChild, но не могу найти 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

...