这是我与Angular 7遇到的问题:
我有两个出口:主应用路由器插座和名为'管理'的辅助插座。
当我想在开始时浏览任何管理链接时,它工作正常。但是下次,当我尝试导航时,angular会抛出此错误消息:
错误:无法激活已激活的插座
那么,有人能解释我为什么吗?我在论坛上找不到任何解决方案......
这是一个stackblitz:https://stackblitz.com/edit/angular-osnnd4
谢谢大家:)
延迟加载子路由时会出现此问题。每次更改路线时都必须手动停用插座。
我已修改您的AdministrationComponent以解决方法如下。它应该能够立即工作,直到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();
});
}
}