Как сохранить родительское мат-меню открытым для дочернего пункта меню активным (active-list-item)? - PullRequest
0 голосов
/ 26 сентября 2019

Когда активен маршрут дочернего меню, я хочу, чтобы открылось родительское меню.

html компонента

 <li>
     <a #open_business="matMenuTrigger" [matMenuTriggerFor]="menu_business" routerLinkActive="active-list-item"
         routerLink="/admin/business" [ngClass]="'hasClild'">
     </a>
     <mat-menu class="dropdown-toggle waves-light" #menu_business="matMenu" yPosition="below">
         <ul>
             <li class="dropdown-item"><a routerLinkActive="active-list-item"
                     routerLink="/admin/business/business1">business1</a></li>
             <li class="dropdown-item"><a routerLinkActive="active-list-item"
                     routerLink="/admin/business/business2">business2</a></li>
         </ul>
     </mat-menu>
 </li>

в компоненте ts

  @ViewChild('open_user',{static: false}) open_user : MatMenuTrigger
  @ViewChild('open_business',{static: false}) open_business : MatMenuTrigger

.
.
.

  ngAfterViewChecked(){
    if(this.router.url.match(/business/g)){
      this.open_business.openMenu()
    }
     ....

  }

, и приведенный выше код возвращает следующую ошибку.кроме того, он не позволяет выполнять какие-либо другие действия.

_MatMenu.html:1 ERROR Error: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: '@transformMenu: void'. Current value: '@transformMenu: enter'.
...