【发布时间】:2019-10-09 23:32:23
【问题描述】:
我正在尝试在每次路线更改时显示一个微调器,例如从 /dashboard 到 /dashboard2 ,但它仅在我从地址栏而不是通过单击组件时才有效
> > import { Component, Input, OnDestroy, Inject, ViewEncapsulation } from '@angular/core'; > import { Router, NavigationStart, NavigationEnd, NavigationCancel, NavigationError } from '@angular/router'; > import { DOCUMENT } from '@angular/common'; > > @Component({ > selector: 'app-spinner', > templateUrl: './spinner.component.html', > styleUrls: ['./spinner.component.css'], > > encapsulation: ViewEncapsulation.None > }) > export class SpinnerComponent implements OnDestroy { > > public isSpinnerVisible = true; > > @Input() public backgroundColor = 'rgba(0, 115, 170, 0.69)'; > > constructor(private router: Router, @Inject(DOCUMENT) private document: Document) { > this.router.events.subscribe( > event => { > if (event instanceof NavigationStart) { > this.isSpinnerVisible = true; > } else if (event instanceof NavigationEnd || event instanceof NavigationCancel || event instanceof NavigationError) { > this.isSpinnerVisible = false; > } > }, > () => { > this.isSpinnerVisible = false; > } > ); > } > > ngOnDestroy(): void { > this.isSpinnerVisible = false; > } > } > > > >//spinner.component.html > <div *ngIf="isSpinnerVisible" class="spinner"></div> > > //app.component.ts > > <router-outlet> > <app-spinner> > </app-spinner> > </router-outlet> > >
【问题讨论】:
标签: angular typescript spinner