Estou tentando fazer o JavaScript renderizar na minha página usando Jade (http://jade-lang.com/)
Meu projeto está no NodeJS com Express, eveything está funcionando corretamente até que eu queira escrever algum JavaScript embutido na cabeça. Mesmo tirando os exemplos dos documentos de Jade, não consigo fazer funcionar o que estou perdendo?
Modelo de jade
!!! 5
html(lang="en")
head
title "Test"
script(type='text/javascript')
if (10 == 10) {
alert("working")
}
body
HTML renderizado resultante no navegador
<!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>
Alguma coisa definitivamente falta aqui alguma idéia?
.
após o(type='text/javascript')
!!! 5
é obsoleto, você deve utilizardoctype html
Respostas:
basta usar uma tag 'script' com um ponto depois.
https://github.com/pugjs/pug/blob/master/examples/dynamicscript.pug
fonte
<script>
vez de<script type="text/javascript">
.type="text/javascript"
é o valor padrão para otype
campo nas<script>
tags. Você não precisa configurá-lo..
anexo. Então,script.
seguido pelo seu bloco recortado de JS.O
:javascript
filtro foi removido na versão 7.0Os documentos dizem que você deve usar uma
script
tag agora, seguida por um.
caractere e nenhum espaço anterior.Exemplo:
será compilado para
fonte
Use a tag de script com o tipo especificado, basta incluí-la antes do ponto:
Isso será compilado para:
fonte
script.
estaria bem.Não use somente tag de script.
Solução com
|
:Ou com um
.
:fonte
.
. Caso contrário, você teria que escrever|
em cada linha.TERCEIRA VERSÃO DA MINHA RESPOSTA:
Aqui está um exemplo de várias linhas de Javascript Jade embutido. Eu não acho que você pode escrever sem usar a
-
. Este é um exemplo de mensagem instantânea que eu uso em parte. Espero que isto ajude!O código que você está tentando compilar é na sua pergunta?
Nesse caso, você não precisa de duas coisas: primeiro, não precisa declarar que é Javascript / um script, você pode apenas começar a codificar após digitar
-
; segundo, depois de digitar,-if
você não precisa digitar o{
ou}
qualquer um. Isso é o que faz Jade muito doce.-------------- RESPOSTA ORIGINAL ABAIXO ---------------
Tente anexar
if
com-
:Existem também vários exemplos de Jade em:
https://github.com/visionmedia/jade/blob/master/examples/
fonte
Para conteúdo de várias linhas, o jade normalmente usa um "|", no entanto:
Dito isto, não consigo reproduzir o problema que você está tendo. Quando colo esse código em um modelo de jade, ele produz a saída correta e solicita um alerta no carregamento da página.
fonte
Use o
:javascript
filtro. Isso irá gerar uma tag de script e escapar do conteúdo do script como CDATA:fonte
script.
fina funciona, e é legal!!! 5
fonte