j-Directory
Il s'agit d'un composant similaire au j-Suggestion, mais il a une conception améliorée et prend en charge des fonctionnalités plus pratiques.
- singleton
- fonctionne avec des touches
- prend en charge le mode sombre
IMPORTANT: par défaut, ce composant rend une valeur en tant que texte de la propriété name.
Méthodes :
Méthode : component.show(options)
options.element {Element/jQuery Element}options.items {Array/String/Function}une liste d'articles (typeStringsignifie un lien vers la source de données)options.offsetX {Number}optionnel,xoffset (défaut:0)options.offsetY {Number}optionnel,yoffset (défaut:0)options.offsetWidth {Number}optionnel,widthoffset (défaut:0)options.placeholder {String}optionnel, un locataire pour le champ de recherche- NEW
options.height {Number}optionnel, une hauteur du conteneur (defaut:180) options.render {Function}facultatif, une fonction de rendement personnalisé de l'articlefunction(item, text)doit retournerHTMLoptions.custom {Boolean/String}facultatif, permettant de retourner une valeur non définie dansoptions.items, par défaut:falseoptions.minwidth {Number}optionnel, une largeur minimale, standard200options.maxwidth {Number}optionnel, largeur maximale, standardinfiniteoptions.callback(selected_item, element, iscustom, e) {Function}est déclenché lorsque l'utilisateur clique sur l'élémentoptions.key {String}en option, unkeypar défaut pour la valeurtext(par défaut :name)options.empty {String}optionnel, ajoute un champ videoptions.exclude {Function}optionnel, peut exclure les articles et doit retourner un booleanfunction(item) { return item.id !== 100 }options.close {Function}optionnel, peut déterminer la fermeture du panneauoptions.search {Boolean/String}optionnel, peut cacher le champ de recherche (defaut:true) ou{String}(nom clé) peut cartographier une valeur pour la rechercheoptions.selected {Object}optionnel, peut contenir une valeur sélectionnée (defaut:undefined)options.align {String}optionnel,left(defaut),rightoucenteroptions.position {String}optionnel,top(defaut),bottomoptions.raw {Boolean}facultatif, cette option empêche l'échappement des caractères (d'autres termes: le contenu HTML sera autorisé dans les étiquettes d'articles, par défaut:false)options.classname {String}optionnel, une classe de conteneur personnalisée pour tous les articles- La positionnation absolue ne fonctionne que si le
options.elementn'est pas définioptions.x {Number}position absolue Xoptions.y {Number}Position absolue
options.checkbox {Boolean}optionnel, permettant les boîtes de vérificationoptions.checked {Array String}optionnel, identifiants d'objets vérifiés- Objectif pour
options.items {Function(q, next)} - La récupération de l'appel ne remet que les identifiants
Array {String}
- Objectif pour
- NEW
options.template {String}optionnel, un modèle Tangular personnalisé par exemple{{ name }}(defaut: null) - NEW
options.fuzzy {Boolean}optionnel, il peut désactiver la recherche fuzzy (defaut:true)
Méthode : component.hide()
Configuration :
placeholder- un locataire pour l'entrée de recherchecreate- un locataire pour l'étiquetteCreate(défaut:Create)
Les champs d'objets soutenus:
name {String}un nom d'étiquettetemplate {String}optionnel, un modèle personnalisé Tangularclassname {String}optionnel, ajoute des classes supplémentaires à l'élément<li>disabled {Boolean}optionnel, il peut désactiver l'élémentselected {Boolean}optionnel, il sélectionne l'élément
Formatisation par Tangular:
var opt = {};
opt.items = [];
opt.push({ name: 'Total.js', template: '<b>{{ name }}</b>' });Formatage via une fonction personnalisée :
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>';
};Ajout d'une classe personnalisée :
var opt = {};
opt.items = [];
opt.push({ name: 'Total.js', classname: 'your_class_name' });Recherche côté serveur :
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);Bon à savoir :
- si
checkboxes:truealors le composant étend les éléments en ajoutant un horodatageselectedts {Number}en raison de la commande
Utilisez-le avec <ui-component name="directory">. Lorsque le composant n'est pas encore chargé, jComponent le télécharge lors de la première utilisation depuis l'adresse dans DEF.fallback (le CDN Componentator par défaut). Auteur : Peter Širka. Source : le référentiel de composants Componentator, licence 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>