Skip to content

Commit e718429

Browse files
Revert "DevExtreme widgets should subscribe to native events outside NgZone (#618)" (#642)
This reverts commit fd127c2.
1 parent cbe23f7 commit e718429

File tree

3 files changed

+4
-46
lines changed

3 files changed

+4
-46
lines changed

src/core/events-strategy.ts

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
import { EventEmitter, NgZone, Injectable } from '@angular/core';
1+
import { EventEmitter, NgZone } from '@angular/core';
22
import { DxComponent } from './component';
3-
import * as eventsEngine from 'devextreme/events/core/events_engine';
43

54
const dxToNgEventNames = {};
65

@@ -115,16 +114,3 @@ export class EmitterHelper {
115114
events.push({ name: name, context: this });
116115
}
117116
}
118-
119-
@Injectable()
120-
export class EventsRegistrator {
121-
constructor(ngZone: NgZone) {
122-
eventsEngine.set({
123-
on: function(...args) {
124-
ngZone.runOutsideAngular(() => {
125-
this.callBase.apply(this, args);
126-
});
127-
}
128-
});
129-
}
130-
}

templates/component.tst

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ import {
1616
Input,
1717
Output,
1818
OnDestroy,
19-
Injector,
2019
EventEmitter<#? it.isEditor #>,
2120
AfterContentInit,
2221
ContentChild,
@@ -44,7 +43,6 @@ import {
4443
import { <#= baseClass #> } from '../core/component';
4544
import { DxTemplateHost } from '../core/template-host';
4645
import { DxTemplateModule } from '../core/template';
47-
import { EventsRegistrator } from '../core/events-strategy';
4846
import { NestedOptionHost } from '../core/nested-option';
4947
import { WatcherHelper } from '../core/watcher-helper';
5048
<#? collectionProperties.length #>import { IterableDifferHelper } from '../core/iterable-differ-helper';<#?#>
@@ -117,12 +115,11 @@ export class <#= it.className #>Component extends <#= baseClass #> <#? implement
117115
}
118116
<#~#>
119117

120-
constructor(elementRef: ElementRef, ngZone: NgZone, templateHost: DxTemplateHost, injector: Injector,
118+
constructor(elementRef: ElementRef, ngZone: NgZone, templateHost: DxTemplateHost,
121119
<#? collectionProperties.length #>private <#?#>_watcherHelper: WatcherHelper<#? collectionProperties.length #>,
122120
private _idh: IterableDifferHelper<#?#>, optionHost: NestedOptionHost) {
123121

124122
super(elementRef, ngZone, templateHost, _watcherHelper);
125-
injector.get(EventsRegistrator);
126123

127124
this._createEventEmitters([
128125
<#~ it.events :event:i #>{ <#? event.subscribe #>subscribe: '<#= event.subscribe #>', <#?#>emit: '<#= event.emit #>' }<#? i < it.events.length-1 #>,
@@ -201,6 +198,5 @@ export class <#= it.className #>Component extends <#= baseClass #> <#? implement
201198
<#= component.className #>Module<#~#>,
202199
DxTemplateModule
203200
],
204-
providers: [EventsRegistrator]
205201
})
206202
export class <#= it.className #>Module { }

tests/src/ui/list.spec.ts

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ import {
55
Component,
66
ViewChildren,
77
QueryList,
8-
OnDestroy,
9-
AfterViewChecked
8+
OnDestroy
109
} from '@angular/core';
1110

1211
import {
@@ -27,15 +26,13 @@ import {
2726
selector: 'test-container-component',
2827
template: ''
2928
})
30-
class TestContainerComponent implements AfterViewChecked {
29+
class TestContainerComponent {
3130
emptyItems = undefined;
3231
items = [1];
3332
complexItems = [{ text: 'Item 1' }];
3433
defaultTemplateItems = [{ text: 'test', disabled: false }];
3534
disabled = false;
3635
@ViewChildren(DxListComponent) innerWidgets: QueryList<DxListComponent>;
37-
38-
ngAfterViewChecked() {}
3936
}
4037

4138
describe('DxList', () => {
@@ -562,25 +559,4 @@ describe('DxList', () => {
562559
expect(DxButton['getInstance'](elements[1])).not.toBeUndefined();
563560
}));
564561

565-
it('widget events should subscribe on native events outside NgZone', () => {
566-
TestBed.overrideComponent(TestContainerComponent, {
567-
set: {
568-
template: `<dx-list [items]="items"></dx-list>`
569-
}
570-
});
571-
572-
let fixture = TestBed.createComponent(TestContainerComponent);
573-
fixture.autoDetectChanges();
574-
575-
let instance = getWidget(fixture);
576-
let onChangesSpy = spyOn(fixture.componentInstance, 'ngAfterViewChecked');
577-
578-
expect(onChangesSpy.calls.count()).toBe(0);
579-
580-
let item = instance.element().querySelector('.dx-item');
581-
item.click();
582-
583-
expect(onChangesSpy.calls.count()).toBe(0);
584-
fixture.autoDetectChanges(false);
585-
});
586562
});

0 commit comments

Comments
 (0)