j-Directory
Het is vergelijkbaar met j-Suggestion, maar heeft een betere ontwerp en ondersteunt meer handige functies.
- Singleton
- Werken met touches
- Ondersteunt het donkere mode
IMPORTANT: deze component geeft standaard een waarde als tekst uit de eigenschap van name.
Methoden:
Methode: component.show(options)
options.element {Element/jQuery Element}options.items {Array/String/Function}een lijst van items (Stringtype betekent een link naar de gegevensbron)options.offsetX {Number}optioneel,xoffset (default:0)options.offsetY {Number}optioneel,yoffset (default:0)options.offsetWidth {Number}optioneel,widthoffset (default:0)options.placeholder {String}optioneel, een plaatshouder voor het zoekveld- NEW
options.height {Number}optioneel, een hoogte van de container (default:180) options.render {Function}optioneel, een functie voor aangepaste rendering van het itemfunction(item, text)moetHTMLretournerenoptions.custom {Boolean/String}optioneel, een waarde die niet is gedefinieerd inoptions.items, standaard:falsekan worden teruggekeerdoptions.minwidth {Number}optioneel, een minimale breedte, standaard200options.maxwidth {Number}optioneel, een maximale breedte, standaardinfiniteoptions.callback(selected_item, element, iscustom, e) {Function}wordt uitgevoerd wanneer de gebruiker op het item kliktoptions.key {String}Optie, een defaultkeyVoortextDe waarde (de standaard)name)options.empty {String}optioneel, voegt leeg veld toeoptions.exclude {Function}optioneel, kan items uitsluiten en moet een booleanfunction(item) { return item.id !== 100 }retournerenoptions.close {Function}optioneel, kan het sluiten van de panelen bepalenoptions.search {Boolean/String}optioneel, kan het zoekveld verbergen (default:true) of{String}(key name) kan een waarde voor het zoeken mappenoptions.selected {Object}optioneel, kan een geselecteerde waarde bevatten (default:undefined)options.align {String}optioneel,left(default),rightofcenteroptions.position {String}optioneel,top(default),bottomoptions.raw {Boolean}optioneel, deze optie voorkomt het ontsnappen van tekens (met andere woorden: HTML-inhoud wordt toegestaan in etiketten van items, standaard:false)options.classname {String}optioneel, een aangepaste containerklasse voor alle items- absolute positionering werkt alleen als
options.elementniet is gedefinieerdoptions.x {Number}absolute positie Xoptions.y {Number}absolute positie
options.checkbox {Boolean}optioneel, mogelijk checkboxesoptions.checked {Array String}optioneel, identificatoren van gecontroleerde items- Gericht op
options.items {Function(q, next)} - De callback geeft alleen de grond-ID's
Array {String}
- Gericht op
- NEW
options.template {String}optioneel, een aangepaste Tangular template bijvoorbeeld{{ name }}(default: null) - NEW
options.fuzzy {Boolean}optioneel, het kan fuzzy zoeken uit te schakelen (default:true)
Methode: component.hide()
Configuratie:
placeholder- een plaatshouder voor de zoekopdrachtcreate- een plaatshouder voor het labelCreate(default:Create)
Ondersteunde items:
name {String}een label naamtemplate {String}optioneel, een aangepaste Tangular templateclassname {String}optioneel, voegt extra klassen toe aan het element<li>disabled {Boolean}optioneel, het kan item uit te schakelenselected {Boolean}optioneel, het selecteert item
Formatting via Tangular:
var opt = {};
opt.items = [];
opt.push({ name: 'Total.js', template: '<b>{{ name }}</b>' });Formatting via custom function:
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>';
};Toegevoegd aan custom class:
var opt = {};
opt.items = [];
opt.push({ name: 'Total.js', classname: 'your_class_name' });Server-zijde zoekopdracht:
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);Goed om te weten:
- als
checkboxes:truedan de component items uitbreidt door een timestampselectedts {Number}toe te voegen als gevolg van bestelling
Gebruik het met <ui-component name="directory">Wanneer de component nog niet is geladen, jComponent Download het op eerste gebruik van het adres in DEF.fallback (De Componentator Schrijver: Peter Širka. bron: de Componentator Componenten repository, MIT licentie.
<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>