white-ui-kit
Version:
Модуль компонентов UI Имя модуля: `white-ui-kit`
56 lines (48 loc) • 1.31 kB
text/typescript
import {
Component,
Injector,
AfterViewInit,
HostBinding,
OnDestroy,
} from '@angular/core';
import {
NgControl,
FormControl,
} from '@angular/forms';
import { Subscription } from 'rxjs';
// Поле ввода
export class HitInputComponent
implements AfterViewInit, OnDestroy {
constructor(private readonly injector: Injector) {}
// Контрол
private control: FormControl;
// Подписка
private subscription: Subscription;
// Флаг наличия ошибки
public hasError: boolean;
public get attrHasError(): string {
return this.hasError ? 'has-error' : null;
}
// Инициализация завершена
public ngAfterViewInit(): void {
const ngControl: NgControl = this.injector.get(NgControl, null);
if (ngControl) {
this.control = ngControl.control as FormControl;
this.subscription = this.control.statusChanges
.subscribe(() => {
this.hasError = !this.control.pristine && !this.control.valid;
});
}
}
// Уничтожение
public ngOnDestroy(): void {
if (this.subscription) {
this.subscription.unsubscribe();
}
}
}