【发布时间】:2011-06-22 21:19:13
【问题描述】:
使用 jQuery 模板,我尝试使用 {{wrap}} 模板标签来包装另一个模板的结果。第二个模板呈现纯文本,而不是 HTML。我目前得到一个空字符串,我希望在其中得到包装模板呈现的纯文本。
如果我用一些 HTML 元素(如 <div> 标记)包围纯文本,那么一切正常,但我将 <div> 渲染到结果中。我可以在我的内容周围创建一个虚拟标签以使 {{html}} 标签工作,但我不希望它出现在呈现的结果中。
如果可能的话,我还想使用相同的包装器来包装实际生成 HTML 的模板,所以如果相同的包装器模板可以同时适用于这两种情况会很好。
这是我的代码:
$("#x").html($("#myTmpl").tmpl());
<div id="x" />
<script id="myTmpl" type="text/x-jquery-tmpl">
The following wraps some non-HTML content: {{wrap "#wrapper"}} help {{/wrap}}
</script>
<script id="wrapper" type="text/x-jquery-tmpl">
<table>
<tbody>
<tr>
<td>
Wrapped content: {{html $item.html}}
</td>
</tr>
</tbody>
</table>
</script>
这段代码可以在这个jsFiddle找到:http://jsfiddle.net/bernardchen1/BYdeg/
【问题讨论】:
-
任何机会你都可以重构你的代码以使用
{{tmpl}}标签(而不是{{wrap}}) -
是的,但是我需要一个 {{tmpl}} 在我试图包装之前和之后。
标签: javascript jquery jquery-templates