mirror of
https://github.com/odoo/owl.git
synced 2025-10-06 19:59:41 +07:00
committed by
Géry Debongnie
parent
cb11c0118c
commit
3c0f8ac76f
@@ -567,11 +567,13 @@ A _business_ DOM event is triggered by a call to `trigger` on a component.
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
The call to `trigger` generates a [_CustomEvent_](https://developer.mozilla.org/docs/Web/Guide/Events/Creating_and_triggering_events)
|
The call to `trigger` generates an `OwlEvent`, a subclass of [_CustomEvent_](https://developer.mozilla.org/docs/Web/Guide/Events/Creating_and_triggering_events)
|
||||||
of type `menu-loaded` and dispatches it on the component's DOM element
|
with an additional attribute `originalComponent` (the component that triggered
|
||||||
(`this.el`). The event bubbles and is cancelable. The parent component listening
|
the event). The generated event is of type `menu-loaded` and dispatches it on
|
||||||
to event `menu-loaded` will receive the payload in its `someMethod` handler
|
the component's DOM element (`this.el`). The event bubbles and is cancelable.
|
||||||
(in the `detail` property of the event), whenever the event is triggered.
|
The parent component listening to event `menu-loaded` will receive the payload
|
||||||
|
in its `someMethod` handler (in the `detail` property of the event), whenever
|
||||||
|
the event is triggered.
|
||||||
|
|
||||||
```js
|
```js
|
||||||
class ParentComponent {
|
class ParentComponent {
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { Observer } from "../core/observer";
|
import { Observer } from "../core/observer";
|
||||||
|
import { OwlEvent } from "../core/owl_event";
|
||||||
import { CompiledTemplate, QWeb } from "../qweb/index";
|
import { CompiledTemplate, QWeb } from "../qweb/index";
|
||||||
import { patch, VNode } from "../vdom/index";
|
import { patch, VNode } from "../vdom/index";
|
||||||
import "./directive";
|
import "./directive";
|
||||||
@@ -388,7 +389,7 @@ export class Component<T extends Env, Props extends {}> {
|
|||||||
*/
|
*/
|
||||||
trigger(eventType: string, payload?: any) {
|
trigger(eventType: string, payload?: any) {
|
||||||
if (this.el) {
|
if (this.el) {
|
||||||
const ev = new CustomEvent(eventType, {
|
const ev = new OwlEvent(this, eventType, {
|
||||||
bubbles: true,
|
bubbles: true,
|
||||||
cancelable: true,
|
cancelable: true,
|
||||||
detail: payload
|
detail: payload
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
import { Component } from "../component/component";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* We define here OwlEvent, a subclass of CustomEvent, with an additional
|
||||||
|
* attribute:
|
||||||
|
* - originalComponent: the component that triggered the event
|
||||||
|
*/
|
||||||
|
|
||||||
|
export class OwlEvent<T> extends CustomEvent<T> {
|
||||||
|
originalComponent: Component<any, any>;
|
||||||
|
constructor(component, eventType, options) {
|
||||||
|
super(eventType, options);
|
||||||
|
this.originalComponent = component;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user