Skip to content

Commit 457eb5d

Browse files
author
Tim Blasi
committed
fix(WebWorker): Return boolean from dispatchRenderEvent
Update web_worker `dispatchRenderEvent` to return a boolean, which [view.ts](https://github.com/angular/angular/blob/master/modules/angular2/src/core/render/dom/view/view.ts#L85) expects.
1 parent 5863f50 commit 457eb5d

File tree

4 files changed

+10
-4
lines changed

4 files changed

+10
-4
lines changed

modules/angular2/src/core/render/api.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -510,6 +510,7 @@ export interface RenderEventDispatcher {
510510
* Called when an event was triggered for a on-* attribute on an element.
511511
* @param {Map<string, any>} locals Locals to be used to evaluate the
512512
* event expressions
513+
* @return {boolean} False if `preventDefault` should be called on the DOM event.
513514
*/
514-
dispatchRenderEvent(elementIndex: number, eventName: string, locals: Map<string, any>);
515+
dispatchRenderEvent(elementIndex: number, eventName: string, locals: Map<string, any>): boolean;
515516
}

modules/angular2/src/web_workers/ui/event_dispatcher.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ export class EventDispatcher implements RenderEventDispatcher {
1717
constructor(private _viewRef: RenderViewRef, private _sink: EventEmitter,
1818
private _serializer: Serializer) {}
1919

20-
dispatchRenderEvent(elementIndex: number, eventName: string, locals: Map<string, any>) {
20+
dispatchRenderEvent(elementIndex: number, eventName: string, locals: Map<string, any>): boolean {
2121
var e = locals.get('$event');
2222
var serializedEvent;
2323
// TODO (jteplitz602): support custom events #3350
@@ -106,5 +106,9 @@ export class EventDispatcher implements RenderEventDispatcher {
106106
"eventName": eventName,
107107
"locals": serializedLocals
108108
});
109+
110+
// TODO(kegluneq): Eventually, we want the user to indicate from the UI side whether the event
111+
// should be canceled, but for now just call `preventDefault` on the original DOM event.
112+
return false;
109113
}
110114
}

modules/angular2/test/core/render/dom/dom_testbed.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ class LoggingEventDispatcher implements RenderEventDispatcher {
5252

5353
constructor(log: List<List<any>>) { this.log = log; }
5454

55-
dispatchRenderEvent(elementIndex: number, eventName: string, locals: Map<string, any>) {
55+
dispatchRenderEvent(elementIndex: number, eventName: string, locals: Map<string, any>): boolean {
5656
this.log.push([elementIndex, eventName, locals]);
5757
return true;
5858
}

modules/angular2/test/web_workers/worker/event_dispatcher_spec.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,8 @@ export function main() {
6969
class SpyEventDispatcher implements RenderEventDispatcher {
7070
constructor(private _callback: Function) {}
7171

72-
dispatchRenderEvent(elementIndex: number, eventName: string, locals: Map<string, any>) {
72+
dispatchRenderEvent(elementIndex: number, eventName: string, locals: Map<string, any>): boolean {
7373
this._callback(elementIndex, eventName, locals);
74+
return false;
7475
}
7576
}

0 commit comments

Comments
 (0)