diff --git a/packages/core/data/observable/index.d.ts b/packages/core/data/observable/index.d.ts index f28756d12..61366b1b6 100644 --- a/packages/core/data/observable/index.d.ts +++ b/packages/core/data/observable/index.d.ts @@ -12,6 +12,13 @@ export interface EventData { object: Observable; } + +export interface NotifyData extends Partial { + eventName: string; + object?: Observable; +} + + /** * Data for the "propertyChange" event. */ @@ -136,7 +143,7 @@ export class Observable { * Notifies all the registered listeners for the event provided in the data.eventName. * @param data The data associated with the event. */ - notify(data: T): void; + notify(data: T): void; /** * Notifies all the registered listeners for the property change event. diff --git a/packages/core/data/observable/index.ts b/packages/core/data/observable/index.ts index 8c3dd8a46..8defcec8b 100644 --- a/packages/core/data/observable/index.ts +++ b/packages/core/data/observable/index.ts @@ -5,6 +5,11 @@ export interface EventData { object: Observable; } +export interface NotifyData extends Partial { + eventName: string; + object?: Observable; +} + export interface PropertyChangeData extends EventData { propertyName: string; value: any; @@ -147,13 +152,13 @@ export class Observable implements ObservableDefinition { } } - public notify(data: T): void { - const eventClass = this.constructor.name; - + public notify(data: T): void { + const eventData = data as EventData; + eventData.object = eventData.object || this; const observers = >this._observers[data.eventName]; if (observers) { - Observable._handleEvent(observers, data); + Observable._handleEvent(observers, eventData); } }