j-Directory
Je to podobný komponent ako j-Suggestion, ale má vylepšený dizajn a podporuje viac praktických funkcií.
- singleton
- pracuje s dotykmi
- podporuje tmavý režim
IMPORTANT: štandardne tento komponent vykresľuje hodnotu ako text z vlastnosti name.
Metódy:
Metóda: component.show(options)
options.element {Element/jQuery Element}options.items {Array/String/Function}zoznam položiek (typStringznamená prepojenie na zdroj údajov)options.offsetX {Number}voliteľné, posunx(predvolené:0)options.offsetY {Number}voliteľné, posuny(predvolené:0)options.offsetWidth {Number}voliteľné, posunwidth(predvolené:0)options.placeholder {String}voliteľné, zástupný symbol pre vyhľadávacie pole- NEW
options.height {Number}voliteľné, výška kontajnera (predvolené:180) options.render {Function}voliteľné, funkcia na prispôsobené vykreslenie položkyfunction(item, text)musí vrátiťHTMLoptions.custom {Boolean/String}voliteľné, umožňuje vrátiť hodnotu, ktorá nie je definovaná voptions.items, predvolené:falseoptions.minwidth {Number}voliteľné, minimálna šírka, predvolená200options.maxwidth {Number}voliteľné, maximálna šírka, predvolenáinfiniteoptions.callback(selected_item, element, iscustom, e) {Function}sa spustí, keď používateľ klikne na položkuoptions.key {String}voliteľné, predvolená hodnotakeypre hodnotutext(predvolená:name)options.empty {String}voliteľné, pridá prázdne poleoptions.exclude {Function}voliteľné, môže vylúčiť položky a musí vrátiť booleovskú hodnotufunction(item) { return item.id !== 100 }options.close {Function}voliteľné, môže určiť uzavretie paneluoptions.search {Boolean/String}voliteľné, môže skryť vyhľadávacie pole (predvolené:true) alebo{String}(názov kľúča) môže mapovať hodnotu pre vyhľadávanieoptions.selected {Object}voliteľné, môže obsahovať vybranú hodnotu (predvolené:undefined)options.align {String}voliteľné,left(predvolené),rightalebocenteroptions.position {String}voliteľné,top(predvolené),bottomoptions.raw {Boolean}voliteľné, táto možnosť zakáže escapovanie znakov (inými slovami: v štítkoch položiek bude povolený obsah HTML, predvolené:false)options.classname {String}voliteľné, vlastná trieda kontajnera pre všetky položky- absolútne polohovanie funguje len vtedy, ak nie je definované
options.elementoptions.x {Number}absolútna poloha Xoptions.y {Number}absolútna poloha r
options.checkbox {Boolean}voliteľné, umožňuje zaškrtávacie políčkaoptions.checked {Array String}voliteľné, identifikátory kontrolovaných položiek- zamerané na
options.items {Function(q, next)} - spätné volanie vráti iba nespracované identifikátory
Array {String}
- zamerané na
- NOVINKA
options.template {String}voliteľné, vlastná šablóna Tangular, napr.{{ name }}(predvolená hodnota: null) - NEW
options.fuzzy {Boolean}voliteľné, môže zakázať fuzzy vyhľadávanie (predvolené:true)
Metóda: component.hide()
Konfigurácia:
placeholder- zástupný znak pre vstup vyhľadávaniacreate- zástupný symbol pre štítokCreate(predvolené:Create)
Podporované polia položiek:
name {String}názov štítkutemplate {String}voliteľné, vlastná šablóna Tangularclassname {String}voliteľné, pridáva ďalšie triedy do prvku<li>disabled {Boolean}voliteľné, môže zakázať položkuselected {Boolean}voliteľné, vyberie položku
Formátovanie cez Tangular:
var opt = {};
opt.items = [];
opt.push({ name: 'Total.js', template: '<b>{{ name }}</b>' });Formátovanie pomocou vlastnej funkcie:
var opt = {};
opt.items = [];
opt.push({ name: 'Total.js' });
opt.push({ name: 'Express.js' });
opt.push({ name: 'Koa.js' });
opt.render = function(item, name) {
return '<b>' + name + '</b>';
};Pridanie vlastnej triedy:
var opt = {};
opt.items = [];
opt.push({ name: 'Total.js', classname: 'your_class_name' });Vyhľadávanie na strane servera:
var opt = {};
opt.element = your_element;
opt.items = function(search, next) {
next([{ name: 'Item 1' }, { name: 'Item 2' }]);
};
opt.callback = function(selected) {
console.log(selected);
};
SETTER('directory/show', opt);Je dobré vedieť:
- ak
checkboxes:true, potom komponent rozširuje položky pridaním časovej pečiatkyselectedts {Number}kvôli objednávke
Použite ho so <ui-component name="directory">. Keď komponent ešte nie je načítaný, jComponent ho stiahne pri prvom použití z adresy v DEF.fallback (predvolene CDN Componentator). Autor: Peter Širka. Zdroj: úložisko komponentov Componentator, licencia MIT.
<style>
body { background-color: #F0F0F0; }
</style>
<ui-component name="directory" config="placeholder:Search ..."></ui-component>
<div class="container">
<div><a href="javascript:void(0)" data-name="classic">Open directory - classic</a></div>
<div><a href="javascript:void(0)" data-name="checkboxes">Open directory - checkboxes</a></div>
</div>
<script>
$(document).on('click', 'a', function() {
var opt = {};
opt.element = $(this);
if (opt.element.attrd('name') === 'checkboxes') {
opt.checkbox = true;
opt.items = [{ name: 'Total.js', selected: true }, { name: 'Express.js', selected: true }, { name: 'Meteor.js' }, { name: 'Koa.js' }, { name: 'ASP.NET' }, { name: 'PHP' }, { name: 'Python' }, { name: 'Node.js' }];
} else
opt.items = [{ name: 'Total.js', template: '<b>{{ name }}</b>' }, { name: 'Express.js' }, { name: 'Meteor.js' }, { name: 'Koa.js' }, { name: 'ASP.NET' }, { name: 'PHP' }, { name: 'Python' }, { name: 'Node.js' }];
opt.callback = function(value) {
if (opt.checkbox)
console.log('SELECTED:', value);
else
console.log('CLICKED:', value);
};
SETTER('directory/show', opt);
});
</script>