From 3607b675b262aa735cf268e4f99f94f0941a3850 Mon Sep 17 00:00:00 2001 From: "volkov.vladislav" Date: Tue, 10 Apr 2018 14:04:36 +0300 Subject: [PATCH] Revert "Prevent option change event firing when changes occur in component (#712) (#717)" This reverts commit 08a40ba87072923693543daf71efd7008426ebc8. --- 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 d2050c062..e557be18e 100644 --- a/src/core/events-strategy.ts +++ b/src/core/events-strategy.ts @@ -93,16 +93,12 @@ let createOnStableSubscription = function(ngZone: NgZone, fireNgEvent: Function) export class EmitterHelper { strategy: NgEventsStrategy; - lockedValueChangeEvent = false; constructor(ngZone: NgZone, public component: DxComponent) { this.strategy = new NgEventsStrategy(component, ngZone); createOnStableSubscription(ngZone, this.fireNgEvent); } 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 11702bb25..82c2b660b 100644 --- a/templates/component.tst +++ b/templates/component.tst @@ -139,9 +139,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); - }); });