10
votes

Utilisation de Jade, comment puis-je déclarer une classe de carrosserie dans un modèle étendu?

Utilisation du moteur de modèle JADE, je souhaite que la possibilité de déclarer éventuellement des classes aux balises de carrosserie, dans des modèles qui s'étendent un autre.

layout.jade xxx

index. jade xxx

ceci ne fonctionne pas.

pug

2 commentaires

Pouvez-vous poster un exemple de code plus complet de ce que vous avez essayé et n'a pas fonctionné? Utilisez-vous une instruction "étendue mise en page" dans votre index.jade? Cela aiderait à voir les fichiers .JADE. Et juste un indice "Syntaxe Sugar", vous pouvez utiliser Body.index au lieu de (Class = 'Index').


Oui, merci. Est-ce mieux? Le héritage des gabarits fonctionne, c'est juste comment donner une classe à l'étiquette du corps, que j'essaie de comprendre.


3 Réponses :


4
votes

OK, l'instruction Block Corps est juste un bloc avec le nom du nom, donc dans votre présentation, vous n'avez pas de body BUCLE inclus, il doit être ajouté dans index.jade (que vous essayez de faire). Cependant, dans votre index.jade, vous remplacez le contenu du bloc avec seulement le corps.index (qui, je suppose - depuis que je ne suis pas sur mon ordinateur de développement et que je ne peux pas l'essayer maintenant - Renders ok mais sort tout le contenu, vous vous retrouvez avec juste un corps vide, bien qu'il puisse avoir l'attribut Class = 'Index').

Ce que vous pourriez essayer est ceci (dans index.jade): xxx

mais je ne suis pas sûr si le reste de votre mise en page.Jade (div # wrap) rendra correctement sous le corps (j'en doute).

Que Je recommanderais, si c'est vraiment une question d'ajouter une classe conditionnelle sur le corps, est une chose comme celle-ci dans layouche.jade (au lieu de corps de bloc): xxx

où MyClassLocalvar est spécifié dans votre appel .Render ( res.Render ('index', {myClassLocalvar: 'theclass'}); ). MyClassLocalvar peut même être un tableau et Jade attribuera toutes les classes de la matrice à votre corps.


1 commentaires

Vous avez raison, en utilisant "Block Prepend Body ... corps.index", la teneur corporelle ne rend pas la façon dont je le veux, mais votre solution fait. Merci beaucoup!



37
votes

Jade prend en charge Ruby comme une interprétation de chaîne

dans votre présentation xxx

dans vos fichiers de vue xxx


3 commentaires

Celui-ci fonctionne bien si vous rendant les fichiers statiques de la ligne de commande (par exemple avec GRUNT) et ne peuvent pas passer facilement dans les variables de manière dynamique.


Pourquoi ne mettriez-vous pas le - VAR BODYCLASCLASC à l'intérieur du bloc Block vars dans le premier bit, hors d'intérêt?


De mon côté, je devais définir la bodyclass comme Corps (Classe = Bodyclass) pour le faire fonctionner.



6
votes

Vous pouvez manipuler des variables dans la portée des parents. Cette solution est donc aussi possible:

dans votre présentation h3> xxx pré>

dans vos fichiers de vue h3>
extends layout
block beforeBody
  - bodyClasses.push('my-page')
block content
  p Hello World!


0 commentaires