Vytvorenie komponentu pre UI Builder
Komponent UI Builder je jeden súbor HTML s najviac štyrmi časťami. Kostra, ktorú editor ponúka pre nový komponent (public/template.txt), sú hodiny:
<style>
.CLASS { font-size: 14px; }
</style>
<script>
exports.id = '';
exports.name = 'Clock';
exports.group = 'Controls';
exports.author = 'Total.js';
exports.icon = 'ti ti-clock';
exports.config = { bold: false, flash: true, seconds: true };
exports.version = '1';
exports.follow = true;
exports.make = function(instance, config, element, cls, iseditor) {
// build the component inside element
};
</script>
<readme>
The component renders the current time and the model contains a `Date` object.
</readme>
<settings>
<div class="padding">
<ui-component name="input" path="?.bold" config="type:checkbox">Apply bold font</ui-component>
</div>
</settings>| Časť | Čo robí |
|---|---|
<style> | CSS komponentu; CLASS sa nahradí triedou, ktorá patrí komponentu |
<script> | exportuje metadáta (id, name, group, author, icon, version, config s predvolenými hodnotami) a funkciu make |
<readme> | pomocný text zobrazený v editore (Markdown) |
<settings> | formulár, ktorý upravuje config: vstupy jComponent, ktorých path začína ?. nasledovaným kľúčom konfigurácie |
Funkcia make
make(instance, config, element, cls, iseditor) sa spustí pri vytvorení komponentu:
instanceje inštancia komponentu (set,on,emit,state...).configje jeho konfigurácia aelementje prvok jQuery, ktorý treba vyplniť.clsje trieda, ktorá nahradilaCLASS, aiseditorhovorí, či sa kreslí v editore alebo vo vykreslenom dizajne (takže napríklad časovač nemusí bežať, kým navrhujete).
Vnútri počúvate udalosti (instance.on('configure', ...) pri zmene nastavení a instance.on('destroy', ...) na vyčistenie časovačov) a hodnotu zapisujete cez instance.set('value', date).
Metadáta, príznaky, metódy a udalosti
Z README editora:
- Metadáta:
exports.follow = truezobrazí komponent vo formulári nastavení Path for reading/writing (iba pre návrhára) aexports.hidden = trueho skryje zo zoznamu komponentov. - Príznaky inštancie:
instance.state.bind = trueautomaticky naviaže komponent vo formulári, pre tie, ktoré čítajú a zapisujú dáta;instance.state.notify = truepri zmene hodnoty vyšle iba udalosťnotifynamiesto priameho nastavenia hodnoty komponentu (príkladom je komponent Counter). - Metóda:
instance.datasource(CLID_OR_@INSTANCEID__OR__#VIEWID, function(value) {})číta zdroj dát a vráti pole[id, name]. - Udalosť:
instance.on('refresh', function(meta) {})sa spustí, keď sa zmenili niektoré objekty:meta.typejeremovealeboconfigure, smeta.itemsalebometa.item. - Vlastnosti editora, ktoré môže komponent čítať:
DEF.cl.datasource(zoznamy kódov a komponenty sfollow),DEF.cl.paths,DEF.cl.list(všetky inštancie),DEF.cl.inputs,DEF.cl.outputs,DEF.cl.viewsaDEF.cl.apps(súrodenecké dizajny). - Nasledovanie:
config.path, ktorá začína@, znamená, že komponent nasleduje iný.
Publikujte súbor vo vlastnom zozname komponentov (spustenie editora) a váš tím ho môže používať z editora.