diff --git a/libs/utils/form/src/lib/disable-control/disable-control.directive.ts b/libs/utils/form/src/lib/disable-control/disable-control.directive.ts index 2bb4eafaeb7112057b80b6fb991f1194852ad5e9..2903202db658c07b3c91dd1395c59302f8c8d319 100644 --- a/libs/utils/form/src/lib/disable-control/disable-control.directive.ts +++ b/libs/utils/form/src/lib/disable-control/disable-control.directive.ts @@ -1,15 +1,19 @@ -import { Directive, Input } from '@angular/core'; +import { Directive, Input, OnChanges, Self, SimpleChanges } from '@angular/core'; import { NgControl } from '@angular/forms'; @Directive({ selector: '[utDisableControl]' }) -export class DisableControlDirective { - constructor(private ngControl: NgControl) {} +export class DisableControlDirective implements OnChanges { + constructor(@Self() private ngControl: NgControl) {} @Input('utDisableControl') - public set disableControl(condition: boolean) { - const action = !!condition ? 'disable' : 'enable'; - this.ngControl.control[action](); + public disableControl: boolean; + + public ngOnChanges(changes: SimpleChanges): void { + if (changes && changes['disableControl']) { + const action = !!this.disableControl ? 'disable' : 'enable'; + this.ngControl.control[action](); + } } }