Dojo framework okrem vlastných widgetov ponúka možnosť vytvárať aj vlastné widgety. Tie sa zväčša tvoria prostredníctvom šablón v jazyku HTML, ktoré sú uložené v externých súboroch. Pre ich implementovanie do aplikácie je potrebné nahrať príslušné moduly vrátane šablóny a prípadne upraviť prostredníctvom metód, ktoré tvoria životný cyklus widgetu (the lifecycle of a widget). Pre nahrávanie šablóny slúži modul dojo/text, ktorý je v Dojo definovaný ako plugin. Príklad: Základná šablóna pre tvorbu widgetu v Dojo.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
define([
"dojo/_base/declare",
"dijit/_WidgetBase",
"dijit/_TemplatedMixin",
"dojo/text!template.html"
],
function(
declare,
_WidgetBase,
_TemplatedMixin,
template
){
return declare(
"data-dojo-type-value",
[_WidgetBase, _TemplatedMixin],
{
templateString : template
});
});
Pre pokročilú tvorbu widgetov je potrebné definovať aj ďalšie moduly, ktoré umožňujú používať šablóny obsahujúce už existujúce widgety vrátane ich modifikácie. Pre tieto účely slúži nasledujúca šablóna. Príklad: Rozšírená šablóna pre tvorbu widgetu v Dojo.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
define([
"dojo/_base/declare",
"dijit/_Widget",
"dijit/_TemplatedMixin",
"dijit/_WidgetsInTemplateMixin",
"dojo/text!template.html"
],
function(
declare,
_Widget,
_TemplatedMixin,
_WidgetsInTemplateMixin,
template
){
return declare("data-dojo-type-value", [
_Widget,
_TemplatedMixin,
_WidgetsInTemplateMixin
], {
templateString : template,
startup : function(){
this.inherited(arguments);
// code
}
});
});
Súčasťou funkcie define() sú aj ďalšie moduly, ktoré sa definujú pre potreby widgetu. Princíp práce s modulmi je identický ako pri funkcii require().
Záver
Uvedené šablóny slúžia pre základnú tvorbu vlastných widgetov. Okrem uvedenej metódy startup() je možné do widgetu uviesť aj ďalšie metódy zo životného cyklu widgetu či vlastnosti pre data binding a metódy pre udalosti. Ale o tom až niekedy nabudúce.13.4.2013 (aktualizované 22.2.2014), Matej LednárKategória: DojoDojo,šablóna,template,programovanie,HTML,dojo,JavaScript,DOM,dojo/ready,dojo/_base/declare,dijit/_Widgetbase,dijit/_Templatedmixin,dojo/text!Žiadna časť tohto článku nesmie byť reprodukovaná bez uvedenia autora a URL na túto stránku.Viac informácií nájdete v sekcii O projekte.