Как узнать, какой объект является последним в массиве? Angular (angular - материальные вкладки) - PullRequest
0 голосов
/ 03 мая 2020

У меня есть массив объектов

[{id: 1, name: home , path: 'home'}, {id: 2, name: contact , path: 'contact'}]

В массиве может быть много объектов. У меня есть функция, которая добавляет объект:

  addTab(selectAfterAdding: any) {
    if (!this.tabs.some(objectItem => objectItem.id == selectAfterAdding.id)) {
      this.tabs.push(selectAfterAdding);
    }
  }

Также функция, которая удаляет и возвращает маршрутизатор обратно.

removeTab(index: number, event: Event) {
  this.tabs.splice(index, 1); 
  this._location.back();
}

html:

<nav mat-tab-nav-bar>
      <a mat-tab-link
         *ngFor="let tab of tabs;let i = index;"
         [routerLink]="tab.path"
         routerLinkActive #rla="routerLinkActive" 
         [active]="rla.isActive"
         class="test"
         >
        {{ tab.name }}
        <span class="span-X-icon" (click)="removeTab(i)" >  delete </span> 
      </a>
    </nav> 

        <mat-panel-title routerLink="/home" (click)="addTab({ id: 1 , name: 'home' , path: 'home'})">
              Home page
        </mat-panel-title>

Проблема заключается в том, когда удалить вкладку, которая не активна go для обратного маршрута .. Я не знаю, как это исправить. Может быть, как проверить активный маршрут в URL ???

1 Ответ

0 голосов
/ 03 мая 2020

Вы можете использовать событие ' selectFocusedIndex ' или свойство selectedIndex для отслеживания активной вкладки. Также добавьте условие, чтобы проверить активную вкладку в функции удаления вкладок для перехода к предыдущему маршруту.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...