J'essaie d'obtenir JavaScript pour afficher sur ma page en utilisant Jade (http://jade-lang.com/)
Mon projet est dans NodeJS avec Express, tout fonctionne correctement jusqu'à ce que je veuille écrire du JavaScript en ligne dans la tête. Même en prenant les exemples des documents Jade, je ne peux pas le faire fonctionner, qu'est-ce qui me manque?
Modèle de jade
!!! 5
html(lang="en")
head
title "Test"
script(type='text/javascript')
if (10 == 10) {
alert("working")
}
body
HTML rendu résultant dans le navigateur
<!DOCTYPE html>
<html lang="en">
<head>
<title>"Test"</title>
<script type="text/javascript">
<if>(10 == 10) {<alert working></alert></if>}
</script>
</head>
<body>
</body>
</html>
Quelque chose manque vraiment ici des idées?
.
après le(type='text/javascript')
!!! 5
est obsolète, vous devez utiliserdoctype html
Réponses:
utilisez simplement une balise «script» avec un point après.
https://github.com/pugjs/pug/blob/master/examples/dynamicscript.pug
la source
<script>
lieu de<script type="text/javascript">
.type="text/javascript"
est la valeur par défaut dutype
champ sur les<script>
balises. Vous n'avez pas besoin de le régler..
annexe. Alorsscript.
suivi de votre bloc en retrait de JS.Le
:javascript
filtre a été supprimé dans la version 7.0La documentation indique que vous devez utiliser une
script
balise maintenant, suivie d'un caractère.
et sans espace précédent.Exemple:
sera compilé pour
la source
Utilisez une balise de script avec le type spécifié, incluez-la simplement avant le point:
Cela se compilera pour:
la source
script.
serait bien.Ne pas utiliser de balise de script uniquement.
Solution avec
|
:Ou avec un
.
:la source
.
. Sinon, vous devrez écrire|
dans chaque ligne.TROISIÈME VERSION DE MA RÉPONSE:
Voici un exemple sur plusieurs lignes de Javascript Jade en ligne. Je ne pense pas que vous puissiez l'écrire sans utiliser un
-
. Ceci est un exemple de message flash que j'utilise dans un partiel. J'espère que cela t'aides!Le code que vous essayez d'obtenir pour le compiler est-il dans votre question?
Si c'est le cas, vous n'avez pas besoin de deux choses: d'abord, vous n'avez pas besoin de déclarer que c'est Javascript / un script, vous pouvez simplement commencer à coder après avoir tapé
-
; deuxièmement, après avoir tapé,-if
vous n'avez pas besoin de taper le{
ou l'un ou l'}
autre. C'est ce qui rend Jade assez doux.-------------- RÉPONSE ORIGINALE CI-DESSOUS ---------------
Essayez d'ajouter
if
au préalable-
:Il existe également des tonnes d'exemples Jade sur:
https://github.com/visionmedia/jade/blob/master/examples/
la source
Pour le contenu multi-lignes, le jade utilise normalement un "|", cependant:
Cela dit, je ne peux pas reproduire le problème que vous rencontrez. Lorsque je colle ce code dans un modèle jade, il produit la bonne sortie et m'invite avec une alerte au chargement de la page.
la source
Utilisez le
:javascript
filtre. Cela générera une balise de script et échappera le contenu du script en tant que CDATA:la source
script.
amende fonctionne bien et est légale!!! 5
la source