Angular 7 - множественные розетки: ошибка: невозможно активировать уже активированную розетку - PullRequest
0 голосов
/ 10 апреля 2019

Вот проблема, с которой я сталкиваюсь в Angular 7:

У меня есть две розетки: розетка основного приложения и вторичная розетка с именем «администрация».

Когда я хочу перейти по любой ссылке администрирования при запуске, она работает нормально. Но в следующий раз, когда я пытаюсь ориентироваться, angular выдает это сообщение об ошибке:

Ошибка: не удается активировать уже активированную розетку

Так, может кто-нибудь объяснить мне, почему? Я не нашел решения на форумах ...

Вот блик стека: https://stackblitz.com/edit/angular-osnnd4

Спасибо всем всем:)

1 Ответ

0 голосов
/ 18 апреля 2019

Проблема возникает при ленивой загрузке дочерних маршрутов.Вы должны вручную деактивировать точку при каждом изменении маршрута.

Я изменил ваш компонент AdministrationOn в качестве обходного пути следующим образом.Он должен быть в состоянии работать, пока Angular не найдет способ решить проблему.

import { Component, OnInit, ViewChild } from '@angular/core';
import { RouterOutlet, Router, ActivationStart } from '@angular/router';

@Component({
  selector: 'app-administration',
  templateUrl: './administration.component.html',
  styleUrls: ['./administration.component.css']
})
export class AdministrationComponent implements OnInit {

  @ViewChild(RouterOutlet) outlet: RouterOutlet;

  constructor(
    private router: Router
  ) { }

  ngOnInit(): void {
    this.router.events.subscribe(e => {
      if (e instanceof ActivationStart && e.snapshot.outlet === "administration")
        this.outlet.deactivate();
    });
  }
}
...