j-Duplicator
VERSION BÊTA. Ce composant est un composant un peu spécial car il peut dupliquer plusieurs fois le même contenu avec des sources de données différentes. Imaginer un éditeur de texte avec des onglets dont chaque onglet contient un contenu différent. Pour ce cas est ciblé j-Duplicator. Suivez l'exemple.
Configuration :
datasource{Array} doit contenir un tableau de contenu pour la duplicationurl{String} facultatif, peut contenir un lien vers untemplateexterne sansJavaScript
Bon à savoir :
Ce composant ajoute la fonction .scopename() à chaque élément du tableau pour la gestion de la portée et chaque contenu est enveloppé dans le scope indépendant avec référence directe à la source principale.
Modèles avancés
<ui-component name="duplicator" path="mytab" config="datasource:tabs" class="invisible">
<script type="text/html" data-id="PRODUCT">
<ui-component name="input" path="?.name">Name</ui-component>
</script>
<script type="text/html" data-id="USER">
<ui-component name="input" path="?.age">Age</ui-component>
</script>
<!-- DYNAMIC -->
<script type="text/html" data-id="ORDER" data-url="/templates/orders.html"></script>
</ui-component>
<script>
// All tabs
var tabs = [];
tabs.push({ template: 'PRODUCT', name: 'iPhone X' });
tabs.push({ template: 'USER', age: 30 });
tabs.push({ template: 'ORDER', price: 324 });
// Choose a default open tab
var mytab = tabs[0];
</script>Utilisez-le avec <ui-component name="duplicator">. 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.
<ui-bind path="tabs" config="template;click span:choosetab" class="block">
<script type="text/html">
{{ foreach m in value }}
<span data-index="{{ $index }}" class="mr5 link">{{ $index + 1 }}</span>
{{ end }}
</script>
</ui-bind>
<h2>Duplicator</h2>
<ui-component name="duplicator" path="mytab" config="datasource:tabs" class="invisible">
<script type="text/html">
<ui-component name="input" path="?.name">Name</ui-component>
</script>
</ui-component>
<script>
var tabs = [];
tabs.push({ name: 'Peter' });
tabs.push({ name: 'Lucka' });
tabs.push({ name: 'Betka' });
function choosetab(el) {
var index = +el.attrd('index');
SET('mytab', tabs[index]);
}
// Default tab
SET('mytab', tabs[0]);
</script>