2012-03-15 63 views
9

ho我可以在玉器中擺脫大括號嗎? (我在node.js中使用jade)我怎樣才能擺脫玉模板內的花括號?

我想呈現jQuery模板到客戶端。 我想逃避的部分看起來像這樣:

div(class='clear') 
script(id='BoardListTemplate', type='text/x-jQuery-tmpl') 
    <p>${Title}</p> 
    <ul id="${Id}" class="IterationBoardList"> 
    <li class="AddNewItem">Add new Item</li> 
    {{tmpl(Items) "#BoardListItemTemplate"}} 
    </ul> 
script(id='BoardListItemTemplate', type='text/x-jQuery-tmpl') 
    <li class="Item" id="${{$data.Id}}"> 
    ${$data.Description}<br /> 
    Assigned to: ${$data.AssignedTo}<br/> 
    StoryPoints: ${$data.StoryPoints}</li> 
script(src='/javascripts/Scrummr.Engine.js', id='BoardListItemTemplate', type='text/javascript') 

千恩萬謝

+1

已嘗試使用html實體'{'和'}'? – arvidkahl 2012-03-15 21:24:49

+1

是的,它不起作用 – 2012-03-15 21:32:20

回答

11

你必須使用管道(|)符號在腳本塊內各行的前面。

舉例來說,參見https://gist.github.com/2047079

+0

管道很好。非常感謝:-) – 2012-03-15 21:33:16

+0

我想指出的是,雖然這個答案是有幫助和真實的,但它實際上並不是對「如何擺脫大括號」問題的答案。 – metamatt 2012-12-12 20:31:36

3

這裏有兩種不同的事情發生。

Jade使用空格來表示文檔結構;縮進問題和換行符很重要,而Jade希望每一行都以從中創建HTML標籤的東西開始。

如果你想給它的東西,你不希望它轉換 - 例如,原始的HTML或腳本或者您想在客戶端呈現原始模板 - 您可以

1 )用管道字符(|)開始每行,然後是原始文本。從Jade docs例如:

p 
    | foo bar baz 
    | rawr rawr 
    | super cool 
    | go jade go 

2)通過結束與一個週期之前的容器代碼啓動一個原始文本塊。例如,再次從玉文檔:

p. 
    foo asdf 
    asdf 
    asdfasdfaf 
    asdf 
    asd. 

另外,翡翠執行字符串插值,治療某些字符或特殊,您可能需要在環境中,你不希望它插逃跑。這是這個問題的一部分(逃避花括號)。翡翠實際上並沒有對待(特別是,但它確實對待#{特別。如果你需要#{,你可以將它轉義爲\#{。

+0

\#{{search.players}}是我一直在尋找的......謝謝@metamatt – 2016-05-22 13:53:43

0

Jade在該行的末尾提供了一個點(。)運算符,該運算符允許您隱藏子縮進塊內的所有內容。

script(id='BoardListTemplate', type='text/x-jQuery-tmpl'). 
    // Everything inside here is completely escaped. 
    <p>${Title}</p> 
    <ul id="${Id}" class="IterationBoardList"> 
    <li class="AddNewItem">Add new Item</li> 
    {{tmpl(Items) "#BoardListItemTemplate"}} 
    </ul> 

- // outside here it's all JADE. 
h1 How about a JADE heading 

script(id='BoardListItemTemplate', type='text/x-jQuery-tmpl'). 
    // back to escaped script in here. 
    <li class="Item" id="${{$data.Id}}"> 
    ${$data.Description}<br /> 
    Assigned to: ${$data.AssignedTo}<br/> 
    StoryPoints: ${$data.StoryPoints}</li> 

script(src='/javascripts/Scrummr.Engine.js', id='BoardListItemTemplate', type='text/javascript'). 

DOT(。)在最後是重要的部分。

相關問題