UNPKG

white-ui-kit

Version:

Модуль компонентов UI Имя модуля: `white-ui-kit`

56 lines (48 loc) 1.31 kB
import { Component, Injector, AfterViewInit, HostBinding, OnDestroy, } from '@angular/core'; import { NgControl, FormControl, } from '@angular/forms'; import { Subscription } from 'rxjs'; // Поле ввода @Component({ selector: '[hit-input]', styleUrls: ['./hit-input.component.scss'], template: '', }) export class HitInputComponent implements AfterViewInit, OnDestroy { constructor(private readonly injector: Injector) {} // Контрол private control: FormControl; // Подписка private subscription: Subscription; // Флаг наличия ошибки public hasError: boolean; @HostBinding('attr.has-error') 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(); } } }