j-Detail
Ce composant peut restituer les valeurs du modèle. Prend en charge le mappage en ligne - consultez le code source de l'exemple.
Configuration :
dateformat {String}un format de date (par défaut :DEF.dateformat)datetimeformat {String}un format date/heure (par défaut :DEF.dateformat + ' ' + DEF.timeformat)numberformat {Number}un format numérique par défaut (par défaut : vide)small {Boolean}permet une conception plus petite (par défaut :false)- Style de composant
style {Number}(par défaut :1), prend en charge les styles2,3(minimal) et4(moderne) defaultgroup {String}un nom de groupe par défaut (par défaut :Default)notnull {Boolean}ignore les valeurs nullables (par défaut :false)track {String}peut contenir des chemins divisés par des virgules, cette propriété ne surveillera que les changements dans les clés tracées
Déclaration de données :
var model = { firstname: 'Peter', lastname: 'Širka', age: 33 };
var items = [{ id: 2, name: 'Banská Bystrica' }, { id: 3, name: 'Bratislava' }];
var form = [];
// The below values will be binded automatically from the "model" (according to the "path" field) because they contain "path" field
form.push({ group: 'Personal', label: 'First name', path: 'firstname', type: 'string', value: model, note: 'This is first name' });
form.push({ group: 'Personal', label: 'Last name', path: 'lastname', type: 'string', value: model, placeholder: 'String' });
form.push({ group: 'Personal', label: 'Age', path: 'age', type: 'number', value: model });
// The below values will be binded from "value" key
form.push({ group: 'Personal', label: 'Birth date', type: 'date', value: NOW });
form.push({ group: 'Additional', label: 'Newsletter', type: 'bool', value: true });
form.push({ group: 'Additional', label: 'City', type: 'list', value: 2, items: 'items' });
form.push({ group: 'Additional', label: 'Color', type: 'color', value: '#e73323' });
form.push({ group: 'Additional', label: 'Icon', type: 'fontawesome', value: 'fas fa-home' });Propriétés de données dans la déclaration des données:
group {String}un nom de groupe (exigeant)label {String}un étiquette (exigeant)type {String}un type (exigeant)note {String}: une petite note sous valeurformat {String}Le numéro g.2ou le formatdd.MM.yyyy- L'adresse URL
detail {String}pour obtenir des données pour le typelist, par exemple:/users/{0}/et{0}seront remplacés par la valeur de la liste - Les éléments
items {Object Array/String}pour le typelistuniquement, les lignes peuvent contenir un chemin versArrayouURL addressà rechercher value {Object}: une valeur ou un modèle avec des valeurs (tandis quepathest requis)path {String}un chemin vers la valeur dans le modèle (valuedoit contenir un modèle)template {String}Un modèle Tangular (ne fonctionne que avectype:'template'et{{ value }}contient une valeur première, et le{{ item }}contient l'ensemble de l'article)empty {String}Une valeur vide lorsque la valeur est nulle (defaut:---)show {String}La fonction conditionnellevalue.type === 'company'indique si la condition évaluée esttrue- NEW
autoformat {Boolean}permet le format automatique pouremail, ouphones, et seulement pour le typestring(defaut:false) - NEW
colorize {Boolean}colorise la valeur à l'exception des typeslist,coloreticon - NEW
plus {String}ajoute une valeur à la fin de la valeur rendue pour les typesnumberetstring
Les types autorisés dans les données:
stringboolnumberdatedatetimelistcoloremojifontawesomepasswordtemplate
Bon à savoir :
- Si le groupe ne contient qu'un seul char, le nom du groupe n'est pas rendu.
Utilisez-le avec <ui-component name="detail">. 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.
<div style="width:500px">
<ui-component name="detail" path="form"></ui-component>
<br />
<div>-- OR --</div>
<br />
<ui-component name="detail" path="model" config="style:2">
<script type="text/plain">
[
{ name: 'First name', path: 'firstname', type: 'string' },
{ name: 'Last name', path: 'lastname', type: 'string' },
{ name: 'Age', path: 'age', type: 'number' }
]
</script>
</ui-component>
<br />
<div>-- OR FILTERED --</div>
<br />
<ui-component name="detail" path="model" config="style:3">
<script type="text/plain">
[
// Will be displayed, look to show condition ("value" means "model")
{ name: 'First name', path: 'firstname', type: 'string', show: 'value.type==1' },
{ name: 'Last name', path: 'lastname', type: 'string', show: 'value.type==1' },
// Won't be displayed, look to show condition ("value" means "model")
{ name: 'Age', path: 'age', type: 'number', show: 'value.type==2' }
]
</script>
</ui-component>
<br />
<ui-component name="detail" path="model" config="style:4">
<script type="text/plain">
[
// Will be displayed, look to show condition ("value" means "model")
{ name: 'First name', path: 'firstname', type: 'string', show: 'value.type==1' },
{ name: 'Last name', path: 'lastname', type: 'string', show: 'value.type==1' },
// Won't be displayed, look to show condition ("value" means "model")
{ name: 'Age', path: 'age', type: 'number', show: 'value.type==2' }
]
</script>
</ui-component>
</div>
<script>
var model = { firstname: 'Peter', lastname: 'Širka', age: 33, type: 1 };
var items = [{ id: 2, name: 'Banská Bystrica' }, { id: 3, name: 'Bratislava' }];
var form = [];
// The below values will be binded automatically from the "model" (according to the "path" field) because they contain "path" field
form.push({ group: 'Personal', label: 'First name', path: 'firstname', type: 'string', value: model, note: 'This is first name' });
form.push({ group: 'Personal', label: 'Last name', path: 'lastname', type: 'string', value: model, placeholder: 'String' });
form.push({ group: 'Personal', label: 'Age', path: 'age', type: 'number', value: model });
// The below values will be binded from "value" key
form.push({ group: 'Personal', label: 'Birth date', type: 'date', value: NOW });
form.push({ group: 'Additional', label: 'Newsletter', type: 'bool', value: true });
form.push({ group: 'Additional', label: 'City', type: 'list', value: 2, items: 'items' });
form.push({ group: 'Additional', label: 'Color', type: 'color', value: '#e73323' });
form.push({ group: 'Additional', label: 'Icon', type: 'fontawesome', value: 'ti ti-home' });
</script>