Je commence par le développement de javascript et ai fait un projet simple avec node.js comme API de repos et un client utilisant l'épine dorsale, tout semble parfaitement jusqu'à ce que je souhaite retirer mes modèles de mes js.
J'ai trouvé des approches différentes, certaines d'entre elles avec un certain temps (comme un an) mais je ne comprends pas ce qui pourrait être meilleur:
Un fichier .js avec un var avec le code html
Pros -> facile à charger, facile à passer au trait de soulignement pour le compiler.
Cons -> scape chaque ligne.
app.templates.view = " \ <h3>something code</h3> \ ";
Modèle de charge:
template: _.template(app.templates.view)
Modèle externe en soulignement
Utilisez require.js pour charger avec le plug-in de texte.
Pros -> chargez différents modèles au besoin.
Contre -> Je n'aime pas l'approche de mettre tout dans une fonction "loader" …
define(["TemplateEngine", "text!templates/template.html"], function(...
RequireJS: Chargement de modules incluant des modèles et CSS
Une fonction qui charge les modèles avec une requête AJAX.
Pros -> Vous pouvez charger le modèle dont vous avez besoin et ajouter des possibilités de stockage local.
Contre -> Il semble que je dois fusionner tous mes modèles en un seul fichier pour les environnements de production.
function() { var templateLoader = {... $.get calls ...}
La meilleure façon de charger de manière asynchrone des modèles de soulignement
Http://api.jquery.com/jQuery.template/
Il semble que l'exigence est la meilleure approche, mais peut-être que je manque quelque chose, je ne veux pas rendre les choses aussi propres que possible puisque je suis dans la phase d'apprentissage / amusement: D
Un bon article ou un projet github avec une bonne structure ou toute lumière sur ce sujet sera apprécié.
Merci.
Excusez toute erreur d'orthographe majeure, pas un locuteur anglais 🙂
–EDIT– a trouvé des vidéos intéressantes pour comprendre comment démarrer et envelopper les choses avec require.js http://www.youtube.com/watch?v=VGlDR1QiV3A
Je vous recommande d'utiliser require.js avec un plugin de texte. Le mélange de modèles html en tant que chaînes dans la variable javascript est une mauvaise idée, ainsi que l'utilisation de quelque chose comme <script type="text/template"></script>
.
Voici une très bonne série sur backbone.js qui couvre le chargement de modèles et la construction de projet aussi: http://dailyjs.com/2012/11/29/backbone-tutorial-1/ . Le projet Github est également fourni ici.
Exiger est une bonne option de ceux que vous avez énumérés.
Existe-t-il une raison pour laquelle vous n'avez pas considéré simplement:
Enregistrement des modèles dans les pages qui les utilisent comme <script type='text/template'>
nodes?
Enregistrer des modèles en tant que fichiers texte (non JS) et les charger via XHR dans des pages qui les utilisent?