我怎样才能摆脱玉模板内的花括号?
我可以逃避一个玉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(。)是重要的部分。