From f79d1254cb8d85500673399fefbdcf7bf10d501b Mon Sep 17 00:00:00 2001 From: "volkov.vladislav" Date: Tue, 10 Apr 2018 13:53:38 +0300 Subject: [PATCH] Revert "Prevent option change event firing when changes occur in component (#712)" This reverts commit 1966c4ea78333fca04827d45ff516c15252bb9b7. --- src/core/events-strategy.ts | 4 ---- templates/component.tst | 2 -- ...stom-value-accessor-implementation.spec.ts | 21 ------------------- 3 files changed, 27 deletions(-) diff --git a/src/core/events-strategy.ts b/src/core/events-strategy.ts index 234c31cef..6ae388fbd 100644 --- a/src/core/events-strategy.ts +++ b/src/core/events-strategy.ts @@ -66,15 +66,11 @@ export class NgEventsStrategy { export class EmitterHelper { strategy: NgEventsStrategy; - lockedValueChangeEvent = false; constructor(ngZone: NgZone, public component: DxComponent) { this.strategy = new NgEventsStrategy(component, ngZone); } fireNgEvent(eventName: string, eventArgs: any) { - if (this.lockedValueChangeEvent && eventName === 'valueChange') { - return; - } let emitter = this.component[eventName]; if (emitter) { emitter.next(eventArgs && eventArgs[0]); diff --git a/templates/component.tst b/templates/component.tst index a3f6d3611..6c7ec0038 100644 --- a/templates/component.tst +++ b/templates/component.tst @@ -149,9 +149,7 @@ export class <#= it.className #>Component extends <#= baseClass #> <#? implement } <#? it.isEditor #> writeValue(value: any): void { - this.eventHelper.lockedValueChangeEvent = true; this.value = value; - this.eventHelper.lockedValueChangeEvent = false; } <#? it.widgetName !== "dxRangeSelector" #> setDisabledState(isDisabled: boolean): void { diff --git a/tests/src/ui/custom-value-accessor-implementation.spec.ts b/tests/src/ui/custom-value-accessor-implementation.spec.ts index ad9bfd8f0..b02981ee5 100644 --- a/tests/src/ui/custom-value-accessor-implementation.spec.ts +++ b/tests/src/ui/custom-value-accessor-implementation.spec.ts @@ -78,7 +78,6 @@ describe('DxTextBox value accessor', () => { expect(instance.option('disabled')).toBe(false); })); - it('should change the value', async(() => { let fixture = TestBed.createComponent(TestContainerComponent); fixture.detectChanges(); @@ -90,7 +89,6 @@ describe('DxTextBox value accessor', () => { expect(instance.option('value')).toBe('text'); })); - it('should change touched option', async(() => { let fixture = TestBed.createComponent(TestContainerComponent); fixture.detectChanges(); @@ -104,23 +102,4 @@ describe('DxTextBox value accessor', () => { expect(fixture.componentInstance.formControl.touched).toBe(true); })); - - it('should not fire valueChanges event when patchValue method is used with emitEvent=false (T614207)', () => { - let fixture = TestBed.createComponent(TestContainerComponent); - fixture.detectChanges(); - - let component = fixture.componentInstance, - form = component.form, - testSpy = jasmine.createSpy('testSpy'); - - form.valueChanges.subscribe(testSpy); - - form.controls['formControl'].patchValue('text', { emitEvent: false }); - fixture.detectChanges(); - expect(testSpy).toHaveBeenCalledTimes(0); - - form.controls['formControl'].patchValue('text2'); - fixture.detectChanges(); - expect(testSpy).toHaveBeenCalledTimes(1); - }); });