41 votes

Jade templating dans Meteor

Dans le Météore Faq http://meteor.com/faq/how-do-i-package-a-new-templating-system il y a quelques informations sur l'ajout d'une autre (celle par défaut Guidon) système de template. Jade est le seul autre exemple explicitement appelé ailleurs dans la documentation.

Donc, c'est quelqu'un travaille déjà sur de Jade? Si non, est-il possible pour moi de commencer? Ou est-ce encore trop tôt? par exemple :

Le package API est en constante évolution et n'est pas documenté, de sorte que vous ne pouvez pas faire vos propres paquets pour l'instant. À venir bientôt.

J'ai essayé de l'amour Guidon dans mon Ember.js projet, mais pour moi rien n'est plus élégant que de Jade.

22voto

debergalis Points 7802

Nous aimerions voir Jade intégration. Utiliser packages/handlebars comme un modèle.

La stratégie de base est de câbler la sortie du moteur de template en Meteor.ui.render qui est la façon dont nous mettons en œuvre en direct à la page des mises à jour. Tant que votre modèle retourne HTML, cela fonctionnera. Tout fois qu'un modèle Jade fait référence à un Meteor.Collection document ou Session variable Meteor registre de la dépendance, de sorte que connaît alors rendre à nouveau le modèle lors de la modification des données.

Mieux encore, cependant, est d'utiliser également Meteor.ui.chunk et Meteor.ui.listChunk. Ces permettra de limiter la quantité de recalcul Météore a faire quand il y a du changement. Par exemple, si vous rendez une liste de documents à l'aide d' {{#each}} dans le Guidon-parler, il n'y a pas de raison de recalculer l'ensemble du modèle lorsqu'un nouveau document est entré dans le jeu de résultats. Nous venons de rendre un HTML morceau pour le nouveau document, et l'insertion de ce droit dans le DOM. C'est listChunk dans l'action.

Ainsi, vous trouverez probablement que instrumentant juste if/unless et for/each en Jade obtient un long chemin.

Juste être conscient, le développement de package n'est pas aussi documenté que les autres parties du système. N'hésitez donc pas à poser des questions plus spécifiques, comme vous allez.

16voto

David Weldon Points 14329

meteor >= 0.8.0

À l'aide de la mquandalle:jade paquet a été officiellement recommandé.

meteor <= 0.7.2

  1. Si vous êtes pas à l'aide de CoffeeScript, vous devriez vérifier jade-guidon. De cette écriture, il y a une question où CoffeeScript fichiers de modèle semblent avoir besoin d'être enveloppé dans un Meteor.startup fonction qui a causé d'autres problèmes pour moi.

  2. Si vous utilisez CoffeeScript, vous devriez vérifier sur mon Cakefile. Les détails sont tous dans la description, mais la version courte est que c'automatiquement ajoute/supprime/mises à jour des fichiers html à côté de votre jade fichiers. J'ai fini par l'ajout d' *.html mon .gitignore, qui ne fonctionne que si vous n'êtes pas de mélange de html et de jade dans le même projet. C'est un peu un hack, mais jusqu'à présent, il fonctionne très bien pour moi.

10voto

SimonDegraeve Points 141

Il suffit de publier mon premier paquet intelligent météore sur Atmosphere!

Utilisez Jade + Guidon au lieu de HTML + Guidon

https://atmosphere.meteor.com/package/jade-handlebars

3voto

nearpoint Points 564

Viens de jade création de modèles de travail avec mon Bolide projets! Et c'est réel jade pas jade-guidon ou quelques demi formulaire de jade. Il est grand, mais il a besoin de Météore de l'INTERFACE utilisateur qui est actuellement en version de développement appelé blaze-rc1. Si ça ne fonctionne pas avec Meteor de 0,7 pour le moment.

faire "mrt ajouter jade"

&

Exécuter votre projet meteor à l'aide de 'mrt-la libération blaze-rc1'

https://github.com/mquandalle/meteor-jade/

Si vous avez coffeescript et jade fichiers dans le même dossier ajouter _ au début du nom de fichier afin qu'il se charge de jade fichiers avant de les coffeescript fichier, sinon il ne fonctionnera pas correctement.

1voto

lfender6445 Points 1361

mrt add jade

en client/views/templates/hello.jade vous pouvez faire quelque chose comme ceci:

 template(name="hello")
  h1 hello world!
  {{greeting}}

  input(type="button" value="click")
 

démarrez votre application avec mrt

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X