j-Directory
Es handelt sich um eine ähnliche Komponente wie j-Suggestion, verfügt jedoch über ein verbessertes Design und unterstützt praktischere Funktionen.
- Singleton
- arbeitet mit Berührungen
- unterstützt den Dark-Modus
WICHTIG: Standardmäßig rendert diese Komponente einen Wert als Text aus der Eigenschaft name.
Methoden:
Methode: component.show(options)
options.element {Element/jQuery Element}options.items {Array/String/Function}eine Liste von Elementen (TypStringbedeutet einen Link zur Datenquelle)options.offsetX {Number}optional,xOffset (Standard:0)options.offsetY {Number}optional,yOffset (Standard:0)options.offsetWidth {Number}optional,widthOffset (Standard:0)options.placeholder {String}optional, ein Platzhalter für das Suchfeld- NEW
options.height {Number}optional, eine Höhe des Containers (Standard:180) options.render {Function}optional, eine Funktion zum benutzerdefinierten Rendern des Elementsfunction(item, text)mussHTMLzurückgebenoptions.custom {Boolean/String}optional, ermöglicht die Rückgabe eines Werts, der nicht inoptions.itemsdefiniert ist, Standard:falseoptions.minwidth {Number}optional, eine minimale Breite, Standard200options.maxwidth {Number}optional, eine maximale Breite, Standardinfiniteoptions.callback(selected_item, element, iscustom, e) {Function}wird ausgelöst, wenn der Benutzer auf das Element klicktoptions.key {String}optional, ein Standardwertkeyfürtext(Standard:name)options.empty {String}optional, fügt leeres Feld hinzuoptions.exclude {Function}optional, kann Elemente ausschließen und muss einen booleschen Wertfunction(item) { return item.id !== 100 }zurückgebenoptions.close {Function}optional, kann das Schließen des Panels bestimmenoptions.search {Boolean/String}optional, kann das Suchfeld ausblenden (Standard:true) oder{String}(Schlüsselname) kann einen Wert für die Suche zuordnenoptions.selected {Object}optional, kann einen ausgewählten Wert enthalten (Standard:undefined)options.align {String}optional,left(Standard),rightodercenteroptions.position {String}optional,top(Standard),bottomoptions.raw {Boolean}optional, diese Option deaktiviert das Escapezeichen von Zeichen (mit anderen Worten: HTML-Inhalte sind in Beschriftungen von Elementen zulässig, Standard:false)options.classname {String}optional, eine benutzerdefinierte Containerklasse für alle Elemente- Die absolute Positionierung funktioniert nur, wenn
options.elementnicht definiert istoptions.x {Number}absolute Position Xoptions.y {Number}absolute Position y
options.checkbox {Boolean}optional, aktiviert Kontrollkästchenoptions.checked {Array String}optional, Kennungen der geprüften Elemente- gezielt für
options.items {Function(q, next)}
- gezielt für
– Der Rückruf gibt nur die Rohbezeichner Array {String} zurück
- NEU
options.template {String}optional, eine benutzerdefinierte Tangular-Vorlage, z. B.{{ name }}(Standard: null) - NEU
options.fuzzy {Boolean}optional, es kann die Fuzzy-Suche deaktivieren (Standard:true)
Methode: component.hide()
Konfiguration:
placeholder– ein Platzhalter für die Sucheingabecreate– ein Platzhalter für die BezeichnungCreate(Standard:Create)
Unterstützte Artikelfelder:
name {String}ein Labelnametemplate {String}optional, eine benutzerdefinierte Tangular-Vorlageclassname {String}optional, fügt dem Element<li>zusätzliche Klassen hinzudisabled {Boolean}optional, es kann das Element deaktivierenselected {Boolean}optional, es wählt das Element aus
Formatierung über Tangular:
var opt = {};
opt.items = [];
opt.push({ name: 'Total.js', template: '<b>{{ name }}</b>' });Formatierung über benutzerdefinierte Funktion:
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>';
};Hinzufügen einer benutzerdefinierten Klasse:
var opt = {};
opt.items = [];
opt.push({ name: 'Total.js', classname: 'your_class_name' });Serverseitige Suche:
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);Gut zu wissen:
- wenn
checkboxes:truedann die Komponente erweitert, indem ein Timestampselectedts {Number}aufgrund der Bestellung hinzugefügt wird
Verwenden Sie es mit <ui-component name="directory">. Wenn die Komponente noch nicht geladen ist, lädt jComponent sie bei der ersten Verwendung von der Adresse in DEF.fallback herunter (standardmäßig das CDN Componentator). Autor: Peter Širka. Quelle: Componentator-Komponenten-Repository, MIT-Lizenz.
<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>