bixi
Version:
企业级中后台前端解决方案
43 lines (36 loc) • 1.36 kB
text/typescript
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Inject, OnDestroy, OnInit, Output } from '@angular/core';
import { Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { I18NService } from '../../../core/i18n/service';
import { BIXI_I18N_TOKEN } from '../../../core/i18n/service.type';
import { MetaService } from '../../../core/meta.service';
import { MobileService } from '../../../core/mobile.service';
({
selector: 'main-menu',
templateUrl: './main-menu.component.html',
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class MainMenuComponent implements OnInit, OnDestroy {
private unsubscribe$ = new Subject<void>();
isMobile: boolean;
() readonly click = new EventEmitter<string>();
constructor(
public meta: MetaService,
(BIXI_I18N_TOKEN) private i18n: I18NService,
private mobileSrv: MobileService,
private cdr: ChangeDetectorRef,
) {
this.mobileSrv.change.pipe(takeUntil(this.unsubscribe$)).subscribe(res => (this.isMobile = res));
}
to(url: string) {
this.click.next(url);
}
ngOnInit(): void {
this.i18n.change.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.cdr.markForCheck());
}
ngOnDestroy(): void {
const { unsubscribe$ } = this;
unsubscribe$.next();
unsubscribe$.complete();
}
}