##// END OF EJS Templates
Added 'Attrs', 'Events' type parameters to DjxWidgetBase, typed 'on' and 'emit' methods
Added 'Attrs', 'Events' type parameters to DjxWidgetBase, typed 'on' and 'emit' methods

File last commit:

r30:a46488b209e8 v1.0.0-rc14 default
r30:a46488b209e8 v1.0.0-rc14 default
Show More
MyWidget.tsx
43 lines | 969 B | text/x-typescript | TypeScriptLexer
import { djbase, djclass, bind, prototype, AbstractConstructor } from "../declare";
import { DjxWidgetBase } from "../tsx/DjxWidgetBase";
import { createElement } from "../tsx";
interface MyWidgetAttrs {
title: string;
counter: number;
}
interface MyWidgetEvents {
"count-inc": Event;
"count-dec": Event;
}
@djclass
export class MyWidget extends djbase(DjxWidgetBase as AbstractConstructor<DjxWidgetBase<MyWidgetAttrs, MyWidgetEvents>>) {
@bind({node: "titleNode", type:"innerHTML"})
title = "";
@prototype()
counter = 0;
render() {
return <div>
<h1 data-dojo-attach-point="titleNode"></h1>
<span onclick={() => this._onIncClick()}>[+]</span>
<span onclick={() => this._onDecClick()}>[-]</span>
</div>;
}
_onIncClick() {
this.emit("count-inc", { bubbles: false } );
}
_onDecClick() {
this.emit("count-dec", { bubbles: false } );
}
}