2012-03-15 64 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(。)在最后是重要的部分。

相关问题