我怎样才能摆脱玉模板内的花括号?

我可以逃避一个玉teplate内的花括号吗? (我在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') 

非常感谢

您必须使用脚本块内每行前面的pipe道(|)符号。

有关示例,请参阅https://gist.github.com/2047079

这里有两件不同的事情。

Jade使用空格来表示文档结构; 缩进问题和换行符都很重要,Jade希望每一行都以创buildHTML标签的东西开始。

如果你想喂它的东西,你不希望它转换 – 例如,原始HTML或脚本或原始模板,你想要在客户端上呈现 – 你可以

1)用pipe道字符(|)开始每行,然后是原始文本。 Jade文档示例:

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

2)通过以句号结束前一个容器标签来启动一个原始文本块。 例如,再次来自Jade文档:

 p. foo asdf asdf asdfasdfaf asdf asd. 

另外,Jade执行string插值,特别处理一些字符或字符,这些字符或字符可能需要在不希望插入的上下文中转义。 这是这个问题的一部分(逃避大括号)。 翡翠实际上并没有对待(特别是,但它确实对待#{特别是。 如果你需要#{,你可以将它转义为\#{。

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(。)是重要的部分。

Interesting Posts