j-Folder
Die Komponente kann einen Inhalt wie einen Dateibrowser rendern. path muss in der Form vorliegen, z. B. Directory/Directory/File. Lernen Sie aus Beispielen.
Konfiguration:
up {String}eine Beschriftung für die Auf-Taste (Standard:..)delimiter {String}ein Trennzeichen für den Pfad (Standard:/)root {String}eine Bezeichnung für das erste Element im Breadcrumb (Standard:Root)scrollbar {Boolean}aktiviert die benutzerdefinierte Bildlaufleiste (Standard:true)scrollbarY {Boolean}zeigt immer die Y-Bildlaufleiste an (Standard:false)delimiter {String}ein Trennzeichen für den Pfad (Standard:/)options {String}ein Pfad zur Methodefunction(item, el)(Benutzer muss auf die rechte Schaltfläche klicken)click {String}ein Pfad zur Variablen oder Methodefunction(item)(Benutzer muss auf das Element klicken)checked {String}ein Pfad zur Variablen oder Methodefunction(checked_items, component)(Benutzer muss das Kontrollkästchen aktivieren)browse {String}IMPORTANT: ein Pfad zur Methodefunction(path, next(ARRAY), [item]), die einen Inhalt für die Komponente zurückgeben mussparent {String}optional, ein Behälter mit fester Höhe, kannwindowsein. Standardwert:component.element()margin {Number}optional, ein oberer/unterer Rand zusammen (Standard:0)drop {String}optional, ein Pfad zur Methode, die ausgeführt wird, wenn eine Datei per Drag&Drop verschoben wirdkey {String}optional, ein Schlüsselname zum Erstellen des Pfades (Standard:name)raw {Boolean}optional, deaktiviert die HTML-Kodierungname(Standard:false)- NEU:
contextmenu {String}optional, ein Pfad zur Methodefunction(item, el, e)(wenn ein Benutzer das Kontextmenü anzeigt)
function fn_browser(path, next, item) {
// @path {String} paths divided according to the "config.delimiter"
// @next {Function(Array)} importat: this function expects array with items
// @item {Object} can be null
var arr = [];
// Object for array:
// obj.name {String} a label/name
// obj.checkbox {Boolean} enables checkbox (default: false)
// obj.checked {Boolean} item will be checked
// obj.icon {String} a icon for item
// obj.type {Number} determines a type of item (1: directory, other: file)
// obj.classname {String} adds a CSS class onto "label" element
// Good to know:
// Only directories can be drilled
// Example:
arr.push({ name: 'Node.js', checkbox: true, type: 1, icon: 'folder' });
arr.push({ name: 'Client-Side', checkbox: true, type: 1, icon: 'folder' });
next(arr);
// next(array, noscroll);
}Verwenden Sie es mit <ui-component name="folder">. Wenn die Komponente noch nicht geladen ist, lädt jComponent sie bei der ersten Verwendung von der Adresse in DEF.fallback (standardmäßig das CDN Componentator) herunter. Autor: Peter Širka. Quelle: Componentator-Komponenten-Repository, MIT-Lizenz.
<div class="container">
<br />
<ui-component name="folder" path="currentpath" config="browse:fn_browse;checked:fn_checked;click:fn_click" style="height:500px"></ui-component>
<br />
</div>
<script>
var currentpath = 'Frameworks/Node.js';
function fn_browse(path, next, item) {
var arr = [];
switch (path) {
case 'Frameworks':
arr.push({ name: 'Node.js', checkbox: true, type: 1, icon: 'folder' });
arr.push({ name: 'Client-Side', checkbox: true, type: 1, icon: 'folder' });
break;
case 'Frameworks/Node.js':
arr.push({ name: 'Total.js', checkbox: true, checked: true, icon: 'file' });
arr.push({ name: 'Express.js', checkbox: true, icon: 'file' });
arr.push({ name: 'Koa.js', checkbox: true, icon: 'file' });
arr.push({ name: 'Meteor.js', checkbox: true, icon: 'file' });
break;
case 'Frameworks/Client-Side':
arr.push({ name: 'React', checkbox: true, icon: 'file' });
arr.push({ name: 'Vue', checkbox: true, icon: 'file' });
arr.push({ name: 'jComponent', checkbox: true, checked: true, icon: 'file' });
arr.push({ name: 'Angular.js', checkbox: true, icon: 'file' });
arr.push({ name: 'jQuery', checkbox: true, icon: 'file' });
break;
default:
arr.push({ name: 'Frameworks', checkbox: true, type: 1, icon: 'folder' });
arr.push({ name: 'Item 1', checkbox: true, icon: 'file' });
arr.push({ name: 'Item 2', checkbox: true, icon: 'file' });
arr.push({ name: 'Item 3', checkbox: true, icon: 'file' });
break;
}
next(arr);
}
function fn_click(item) {
console.log('click', item);
}
function fn_checked(arr) {
console.log('checked', arr);
}
</script>