Add eventMap variants of Backbone.Events.{once,listenTo,listenToOnce}

Fixes #22156.

Affects backbone, backbone-relational, backbone.marionette, backbone.radio.
This commit is contained in:
Julian Gonggrijp
2019-02-15 03:15:22 +01:00
parent b5528b7e88
commit 754bd43c20
5 changed files with 24 additions and 0 deletions
+3
View File
@@ -132,8 +132,11 @@ declare module 'backbone-relational' {
bind(eventName: string, callback: (...args: any[]) => void, context?: any): any;
unbind(eventName?: string, callback?: (...args: any[]) => void, context?: any): any;
once(events: string, callback: (...args: any[]) => void, context?: any): any;
once(eventMap: EventMap, context?: any): any;
listenTo(object: any, events: string, callback: (...args: any[]) => void): any;
listenTo(object: any, eventMap: EventMap): any;
listenToOnce(object: any, events: string, callback: (...args: any[]) => void): any;
listenToOnce(object: any, eventMap: EventMap): any;
stopListening(object?: any, events?: string, callback?: (...args: any[]) => void): any;
initializeRelation(model, relation, options);
+4
View File
@@ -418,9 +418,13 @@ export class Object implements CommonMixin, RadioMixin, Backbone.Events {
trigger(eventName: string, ...args: any[]): any;
bind(eventName: string, callback: (...args: any[]) => void, context?: any): any;
unbind(eventName?: string, callback?: (...args: any[]) => void, context?: any): any;
once(events: string, callback: (...args: any[]) => void, context?: any): any;
once(eventMap: Backbone.EventMap, context?: any): any;
listenTo(object: any, events: string, callback: (...args: any[]) => void): any;
listenTo(object: any, eventMap: Backbone.EventMap): any;
listenToOnce(object: any, events: string, callback: (...args: any[]) => void): any;
listenToOnce(object: any, eventMap: Backbone.EventMap): any;
stopListening(object?: any, events?: string, callback?: (...args: any[]) => void): any;
/**
+4
View File
@@ -80,9 +80,13 @@ declare module "backbone" {
trigger(eventName: string, ...args: any[]): any;
bind(eventName: string, callback: (...args: any[]) => void, context?: any): any;
unbind(eventName?: string, callback?: (...args: any[]) => void, context?: any): any;
once(events: string, callback: (...args: any[]) => void, context?: any): any;
once(eventMap: EventMap, context?: any): any;
listenTo(object: any, events: string, callback: (...args: any[]) => void): any;
listenTo(object: any, eventMap: EventMap): any;
listenToOnce(object: any, events: string, callback: (...args: any[]) => void): any;
listenToOnce(object: any, eventMap: EventMap): any;
stopListening(object?: any, events?: string, callback?: (...args: any[]) => void): any;
channelName: string;
reset(): Channel;
+4
View File
@@ -272,18 +272,22 @@ namespace v1Changes {
var model = new Employee;
model.once('invalid', () => { }, this);
model.once('invalid', () => { });
model.once({invalid: () => { }, success: () => { }}, this);
model.once({invalid: () => { }, success: () => { }});
}
function test_listenTo() {
var model = new Employee;
var view = new Backbone.View<Employee>();
view.listenTo(model, 'invalid', () => { });
view.listenTo(model, {invalid: () => { }, success: () => { }});
}
function test_listenToOnce() {
var model = new Employee;
var view = new Backbone.View<Employee>();
view.listenToOnce(model, 'invalid', () => { });
view.listenToOnce(model, {invalid: () => { }, success: () => { }});
}
function test_stopListening() {
+9
View File
@@ -119,8 +119,11 @@ declare namespace Backbone {
unbind(eventName?: string, callback?: (...args: any[]) => void, context?: any): any;
once(events: string, callback: (...args: any[]) => void, context?: any): any;
once(eventMap: EventMap, context?: any): any;
listenTo(object: any, events: string, callback: (...args: any[]) => void): any;
listenTo(object: any, eventMap: EventMap): any;
listenToOnce(object: any, events: string, callback: (...args: any[]) => void): any;
listenToOnce(object: any, eventMap: EventMap): any;
stopListening(object?: any, events?: string, callback?: (...args: any[]) => void): any;
}
@@ -133,8 +136,11 @@ declare namespace Backbone {
bind(eventName: string, callback: Function, context?: any): any
unbind(eventName?: string, callback?: Function, context?: any): any
once(events: string, callback: Function, context?: any): any
once(eventMap: EventMap, context?: any): any;
listenTo(object: any, events: string, callback: Function):any
listenTo(object: any, eventMap: EventMap): any;
listenToOnce(object: any, events: string, callback: Function): any
listenToOnce(object: any, eventMap: EventMap): any;
stopListening(object?: any, events?: string, callback?: Function): any
parse(response: any, options?: any): any;
@@ -513,7 +519,10 @@ declare abstract class EventSignatures implements Backbone.Events {
unbind(eventName?: string, callback?: (...args: any[]) => void, context?: any): any;
once(events: string, callback: (...args: any[]) => void, context?: any): any;
once(eventMap: Backbone.EventMap, context?: any): any;
listenTo(object: any, events: string, callback: (...args: any[]) => void): any;
listenTo(object: any, eventMap: Backbone.EventMap): any;
listenToOnce(object: any, events: string, callback: (...args: any[]) => void): any;
listenToOnce(object: any, eventMap: Backbone.EventMap): any;
stopListening(object?: any, events?: string, callback?: (...args: any[]) => void): any;
}