Próbuję uzyskać JavaScript do renderowania na mojej stronie przy użyciu Jade (http://jade-lang.com/)
Mój projekt jest w NodeJS z Express, wszystko działa poprawnie, dopóki nie chcę napisać wbudowanego JavaScript w głowie. Nawet biorąc przykłady z Jadeitowych dokumentów, nie mogę zmusić go do działania tego, czego mi brakuje?
Szablon Jade
!!! 5
html(lang="en")
head
title "Test"
script(type='text/javascript')
if (10 == 10) {
alert("working")
}
body
Wynikowy renderowany HTML w przeglądarce
<!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>
Coś zdecydowanie brakuje tutaj jakieś pomysły?
.
po(type='text/javascript')
!!! 5
jest przestarzałe, musisz użyćdoctype html
Odpowiedzi:
wystarczy użyć znacznika „script” z kropką po.
https://github.com/pugjs/pug/blob/master/examples/dynamicscript.pug
źródło
<script>
zamiast<script type="text/javascript">
.type="text/javascript"
jest wartością domyślnątype
pola w<script>
tagach. Nie musisz tego ustawiać..
dołączony dodatek. Więcscript.
następnie swojej urozmaiconej bryle JS.:javascript
Filtracyjny usunięto 7.0Dokumenty mówią, że powinieneś
script
teraz użyć tagu, po którym następuje.
znak bez spacji.Przykład:
zostanie skompilowany do
źródło
Użyj znacznika skryptu z określonym typem, po prostu dołącz go przed kropką:
Spowoduje to kompilację do:
źródło
script.
będzie dobrze.Nie używaj tylko tagu skryptu.
Rozwiązanie z
|
:Lub z
.
:źródło
.
. W przeciwnym razie będziesz musiał pisać|
w każdej linii.TRZECIA WERSJA MOJEJ ODPOWIEDZI:
Oto wielowierszowy przykład wbudowanego Jade Javascript. Nie sądzę, że możesz to napisać bez użycia
-
. To przykładowy komunikat flash, którego używam częściowo. Mam nadzieję że to pomoże!Czy kod, który próbujesz uzyskać, aby skompilować kod w swoim pytaniu?
Jeśli tak, nie potrzebujesz dwóch rzeczy: po pierwsze, nie musisz deklarować, że jest to JavaScript / skrypt, możesz po prostu zacząć pisać po wpisaniu
-
; Po drugie, po wpisaniu-if
nie trzeba wpisać{
albo}
albo. To sprawia, że Jade jest całkiem słodka.-------------- ORYGINALNA ODPOWIEDŹ PONIŻEJ ---------------
Spróbuj zrobić
if
z-
:Istnieje również mnóstwo przykładów Jade na:
https://github.com/visionmedia/jade/blob/master/examples/
źródło
W przypadku treści wieloliniowych jade zwykle używa znaku „|”, jednak:
To powiedziawszy, nie mogę odtworzyć twojego problemu. Kiedy wklejam ten kod w szablonie jadeit, generuje on właściwe dane wyjściowe i wyświetla monit o załadowanie strony.
źródło
Użyj
:javascript
filtra. Spowoduje to wygenerowanie znacznika skryptu i uniknięcie zawartości skryptu jako CDATA:źródło
script.
działa dobrze i jest legalna!!! 5
źródło