Jade / Pug로 인라인 JavaScript를 어떻게 렌더링 할 수 있습니까?
Jade (http://jade-lang.com/)를 사용하여 페이지에서 JavaScript를 렌더링하려고합니다.
내 프로젝트는 Express와 함께 NodeJS에 있으며 헤드에 인라인 JavaScript를 작성하고 싶을 때까지 eveything이 올바르게 작동합니다. Jade 문서에서 예제를 보더라도 누락 된 것을 작동시킬 수 없습니까?
옥 템플릿
!!! 5
html(lang="en")
head
title "Test"
script(type='text/javascript')
if (10 == 10) {
alert("working")
}
body
브라우저에서 결과 렌더링 된 HTML
<!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>
어떤 아이디어가 분명히 놓칠 수 있습니까?
점 뒤에 'script'태그를 사용하면됩니다.
script.
var users = !{JSON.stringify(users).replace(/<\//g, "<\\/")}
https://github.com/pugjs/pug/blob/master/examples/dynamicscript.pug
:javascript
필터에서 제거 7.0
문서는 말한다 당신이 사용해야 script
a로 이어 지금 태그, .
문자없이 앞의 공간을.
예:
script.
if (usingJade)
console.log('you are awesome')
else
console.log('use jade')
에 컴파일됩니다
<script>
if (usingJade)
console.log('you are awesome')
else
console.log('use jade')
</script>
지정된 유형의 스크립트 태그를 사용하십시오. 점 앞에 포함하십시오.
script(type="text/javascript").
if (10 == 10) {
alert("working");
}
이것은 다음과 같이 컴파일됩니다.
<script type="text/javascript">
if (10 == 10) {
alert("working");
}
</script>
스크립트 태그 만 사용하지 마십시오.
솔루션 |
:
script
| if (10 == 10) {
| alert("working")
| }
또는 .
:
script.
if (10 == 10) {
alert("working")
}
답변의 세 번째 버전 :
다음은 인라인 Jade Javascript의 여러 줄 예입니다. 나는 당신이 그것을 사용하지 않고 그것을 쓸 수 있다고 생각하지 않습니다 -
. 이것은 내가 부분적으로 사용하는 플래시 메시지 예입니다. 도움이 되었기를 바랍니다!
-if(typeof(info) !== 'undefined')
-if (info)
- if(info.length){
ul
-info.forEach(function(info){
li= info
-})
-}
질문에서 코드를 컴파일하려고하는 코드입니까?
그렇다면 두 가지가 필요하지 않습니다. 먼저 자바 스크립트 / 스크립트라고 선언 할 필요가 없습니다 -
. 입력 후 코딩을 시작할 수 있습니다 . 당신이 입력 한 후 두 번째, -if
당신은 입력 할 필요가 없습니다 {
또는 }
중 하나. 그것이 Jade를 매우 달콤하게 만드는 것입니다.
--------------ORIGINAL ANSWER BELOW ---------------
Try prepending if
with -
:
-if(10 == 10)
//do whatever you want here as long as it's indented two spaces from
the `-` above
There are also tons of Jade examples at:
https://github.com/visionmedia/jade/blob/master/examples/
For multi-line content jade normally uses a "|", however:
Tags that accept only text such as script, style, and textarea do not need the leading | character
This said, i cannot reproduce the problem you are having. When i paste that code in a jade template, it produces the right output and prompts me with an alert on page-load.
I would check your white spaces.
Also you can bring your JS file in as an include. I know its not an answer to what is going wrong but you will find it easier to Debug your JS since any errors end up referring to a line number in a file that is real.
Use the :javascript
filter. This will generate a script tag and escape the script contents as CDATA:
!!! 5
html(lang="en")
head
title "Test"
:javascript
if (10 == 10) {
alert("working")
}
body
script(nonce="some-nonce").
console.log("test");
//- Workaround
<script nonce="some-nonce">console.log("test");</script>
참고URL : https://stackoverflow.com/questions/5858218/how-can-i-render-inline-javascript-with-jade-pug
'IT story' 카테고리의 다른 글
유형이 부울인지 확인하는 방법 (0) | 2020.04.29 |
---|---|
ElasticSearch 서버의 모든 인덱스를 나열 하시겠습니까? (0) | 2020.04.29 |
플라스크에 선택적 URL 매개 변수가 있습니까? (0) | 2020.04.29 |
구성 시스템을 초기화하지 못했습니다 (0) | 2020.04.29 |
2 행에서 파일을 읽거나 헤더 행을 건너 뜁니다. (0) | 2020.04.29 |