Des suggestions sur la bibliothèque de modèles HTML qui irait bien avec JQuery? Google propose un certain nombre de bibliothèques, mais je ne suis pas sûr qu'il existe une bibliothèque bien reconnue qui résisterait à l'épreuve du temps.
Des suggestions sur la bibliothèque de modèles HTML qui irait bien avec JQuery? Google propose un certain nombre de bibliothèques, mais je ne suis pas sûr qu'il existe une bibliothèque bien reconnue qui résisterait à l'épreuve du temps.
Réponses:
Eh bien, pour être franc, la création de modèles côté client est très populaire de nos jours, mais tout à fait une jungle.
les plus populaires sont, je crois:
il y en a beaucoup d' autres, mais vous devez les tester pour voir ce qui vous convient le mieux et le style de votre projet.
Personnellement, j'ai du mal à ajouter une nouvelle syntaxe et un ensemble de logique ( mélange de logique et de modèle, bonjour ?? ), et je suis allé purement js. Chacun de mes modèles est stocké dans son propre fichier html (./usersTable.row.html). J'utilise des modèles uniquement lors de l'ajaxage du contenu, et j'ai peu de fichiers js "logiques", un pour les tables, un pour div, un pour les listes. et même pas un pour les options de select (où j'utilise une autre méthode).
Chaque fois que j'essayais de faire quelque chose de plus complexe, je découvrais que le code était moins clair et me prenait plus de temps à se stabiliser que de le faire «à l'ancienne». La logique dans le modèle est un non-sens absolu à mon avis, et l'ajout de sa propre syntaxe n'ajoute que des bogues très difficiles à tracer.
un moteur de template pour JavaScript.
Plugin vers jQuery ...
Fonctionnalités:
- 100% en JavaScript
- précompilateur
- Soutenir JSON
- Travailler avec Ajax
- Autoriser l'utilisation du code JavaScript à l'intérieur du modèle
- Permettre de créer des modèles en cascade
- Permettre de définir des paramètres dans les modèles
- Rafraîchissement en direct! - contenu de mise à jour automatique du serveur ...
Il existe un document de discussion raisonnable sur ce sujet ici , qui couvre une gamme d'outils de création de modèles. Pas spécifique à jQuery, cependant.
Plugin jQuery Templates créé par Microsoft et accepté comme plugin jQuery officiel.
Mais notez qu'il est désormais obsolète.
Je vérifierais json2html , il évite d'avoir à écrire des extraits de code HTML et s'appuie à la place sur des transformations JSON pour convertir les tableaux d'objets JSON en listes non structurées. Très rapide et utilise la création DOM.
Il y a quelques années, j'ai construit IBDOM: http://ibdom.sf.net/ | Depuis décembre 2009, il prend en charge la liaison jQuery si vous l'obtenez directement depuis le coffre.
$("#foo").injectWith(collectionOfJavaScriptObjects);
ou
$("#foo").injectWith(simpleJavaScriptObject);
De plus, vous pouvez maintenant placer tous les marqueurs "data: propName" dans les attributs class = "data: propName other classnames", de sorte que vous n'ayez pas à joncher le contenu de votre application avec ces marqueurs.
Je n'ai pas encore mis à jour une partie de la documentation là-dessus pour refléter mes récentes améliorations, mais j'ai eu différentes versions de ce cadre en production depuis 2007.
Aux sceptiques de cette question:
À l'époque où Microsoft a inventé avec IE5 ce que nous appelons maintenant XmlHttpRequest et le modèle «ajax», une partie de la promesse derrière cela était d'échanger purement des données entre un navigateur Web et le serveur. Ces données devaient être encapsulées dans XML, car en 1999/2000, XML était tout simplement très chaud. Au-delà de la récupération d'un document xml sur le réseau avec un mécanisme de rappel, le composant MSXML ActiveX de MS a également pris en charge une mise en œuvre préliminaire de ce que nous appelons maintenant XSL-T et XPath.
La combinaison de la récupération de HTTP / XML, XPath et XSL-T a donné aux développeurs une grande créativité pour créer des «documents» riches qui se comportaient comme des «applications», uniquement en envoyant et, plus important encore, en récupérant des données sur le serveur.
Pourquoi est-ce un modèle utile? Cela dépend de la complexité de votre interface utilisateur et de l'importance que vous accordez à sa maintenabilité.
Lors de la construction d'une interface sémantiquement balisée visuellement très riche avec CSS avancé, la dernière chose que vous voulez faire est de découper des morceaux de balisage en "mini-contrôleur / vues", juste pour que vous puissiez .innerHTML un fragment de document dans le fichier principal document, et voici pourquoi.
Un principe clé pour garder une interface utilisateur html / css avancée gérable, est de préserver sa validation au moins pendant sa phase active de développement. Si votre balisage se valide, vous pouvez vous concentrer sur vos bogues CSS. Maintenant, si des fragments de balisage finissent par être injectés au cours des différentes étapes de l'interaction utilisateur, tout devient très difficile à gérer et le tout devient fragile.
L'idée était d'avoir toutes vos constructions d'interface utilisateur de balisage dans un seul document, de récupérer UNIQUEMENT DES DONNÉES sur le réseau et d'utiliser un cadre solide qui injectera au moins simplement vos données dans vos constructions de balisage, et au plus répliquer les constructions de balisage que vous avez marqué comme répétable.
Cela était possible avec XSL-T et XPath dans IE5 +, mais pratiquement aucun autre navigateur. Certains frameworks de navigateur F / OSS ont essayé XPath, mais ce n'est pas tout à fait quelque chose sur lequel nous pouvons compter pour le moment.
Alors, quelle est la meilleure chose à faire pour obtenir un tel modèle? IBDOM. Récupérez les données de votre serveur, injectez-les dans votre document. sans effort.
Vous devriez jeter un oeil sur Javascript-Templates, il s'agit d'un petit moteur de template utilisé dans le célèbre plugin jQuery File Upload, et développé par le même auteur, Sebastian Tschan (@blueimp)
https://github.com/blueimp/JavaScript-Templates
Suivez le guide d'utilisation de Sebastian, supprimez simplement cette ligne
document.getElementById("result").innerHTML = tmpl("tmpl-demo", data);
Remplacez-le par celui-ci
$('#result').html(tmpl('tmpl-demo', data));
N'oubliez pas d'ajouter la balise de résultat div dans votre fichier HTML également
<div id="result"></div>
Prendre plaisir