disable-control.directive.ts 409 Bytes
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
import { Directive, Input } from '@angular/core';
import { NgControl } from '@angular/forms';

@Directive({
  selector: '[utDisableControl]'
})
export class DisableControlDirective {
  constructor(private ngControl: NgControl) {}

  @Input('utDisableControl')
  public set disableControl(condition: boolean) {
    const action = !!condition ? 'disable' : 'enable';
    this.ngControl.control[action]();
  }
}