У нас проблема с новым обновлением Firefox с нашим приложением Angular 8.Мы ничего не изменили в нашем коде, но теперь, когда браузер обновился, когда мы нажимаем RouterLink
, страница не перемещается, пока не произойдет другое событие (любое из них).Похоже, что мы не нажали на ссылку, и после того, как другое событие было отправлено, оно переходит на страницу, на которую щелкнули ранее.
Есть идеи, что происходит?мы перепробовали все, что могли найти, и ничего не помогло.
Заранее спасибо!
Модуль с импортированным модулем RouterModule
@NgModule({
exports: [
// ANGULAR
RouterModule
],
imports: [
// ANGULAR
RouterModule.forRoot(
AppRoutes,
{
onSameUrlNavigation: 'reload',
useHash: true
}
)
]})export class AppRoutingModule { }
Компонент со ссылками (у нас нет элемента RouterLink
, потому что нам нужно былопроделайте некоторую работу перед навигацией)
<mat-tree [dataSource]="dataSource" [treeControl]="treeControl" id="menu">
<!--LEAF NODE-->
<mat-tree-node
matTreeNodeToggle
*matTreeNodeDef="let node"
[ngStyle]="{'padding-left': 'calc('+ node.level +' * 10px + 10px)'}"
[ngClass]="{'menuLevel1': node.level == 0, 'menuLevel2': node.level == 1, 'menuLevel3': node.level == 2, 'menuLevel4': node.level >= 3}"
(click)="collapse(node)">
<a class="relative" (click)="clickOnItem()">
<div fxLayoutAlign="center center">
<span class="fs-pl-1">{{ node.name }}</span>
</div>
</a>
</mat-tree-node>
<!--END OF LEAF NODE-->
<!--INTERNAL NODE-->
<mat-tree-node
*matTreeNodeDef="let node;when: hasChild"
[ngStyle]="{'padding-left': 'calc('+ node.level +' * 10px + 10px)'}"
[ngClass]="{'menuLevel1': node.level == 0, 'menuLevel2': node.level == 1, 'menuLevel3': node.level == 2, 'menuLevel4': node.level >= 3}"
(click)="collapse(node)">
<a class="relative" (click)="clickOnItem()">
<div fxLayoutAlign="center center">
<span class="fs-pl-1">{{ node.name }}</span>
</div>
</a>
<div class="expand-menu-item" fxFlex fxLayout="row" fxLayoutAlign="end center">
<div class="fs-h-100" fxLayout="column" fxLayoutAlign="center center">
<button mat-icon-button matTreeNodeToggle matSuffix
[attr.aria-label]="'toggle ' + node.name" fxLayoutAlign="start center">
<mat-icon *ngIf="node.expandable" height="24px" width="24px">
{{treeControl.isExpanded(node) ? 'expand_more' : 'chevron_left'}}
</mat-icon>
</button>
</div>
</div>
</mat-tree-node>
<!--END OF INTERNAL NODE-->
код сворачивания (узла)
this.router.navigate(['main', 'nodes', node.family , node.id]);
this.treeControl.collapseAll();
this.treeControl.toggle(node);
if (node.level > 0) {
this.expandParent(node);
}
Модуль объявления компонента меню
@NgModule({
declarations: [
// CORE COMPONENTS
HeaderComponent,
HomeComponent,
MenuComponent,
MainComponent,
// HELPERS
PeriodDateFormatPipe,
SentenceFormatPipe,
VersionFormatPipe,
UnitsFormatPipe,
KeysPipe
],
exports: [
// ANGULAR
FlexLayoutModule,
// HELPERS
PeriodDateFormatPipe,
SentenceFormatPipe,
VersionFormatPipe,
UnitsFormatPipe,
KeysPipe,
],
imports: [
// ANGULAR
ReactiveFormsModule,
FlexLayoutModule,
CommonModule,
FormsModule,
// ANGULAR MATERIAL
MatFormFieldModule,
MatExpansionModule,
MatSidenavModule,
MatToolbarModule,
MatTooltipModule,
MatDialogModule,
MatSelectModule,
MatButtonModule,
MatInputModule,
MatTabsModule,
MatCardModule,
MatIconModule,
MatMenuModule,
MatTreeModule,
// ROUTES
MainRoutingModule
],
providers: [
// SERVICES
CommunicationService
]})export class MainModule { }