Javascript 使用jquery模板{{wrap}}包装纯文本
对于jQuery模板,我尝试使用{{wrap}}template标记来包装另一个模板的结果。第二个模板呈现纯文本,而不是HTML。我当前得到一个空字符串,希望从中获得包装模板呈现的纯文本 如果我用一些HTML元素(如Javascript 使用jquery模板{{wrap}}包装纯文本,javascript,jquery,jquery-templates,Javascript,Jquery,Jquery Templates,对于jQuery模板,我尝试使用{{wrap}}template标记来包装另一个模板的结果。第二个模板呈现纯文本,而不是HTML。我当前得到一个空字符串,希望从中获得包装模板呈现的纯文本 如果我用一些HTML元素(如标记)围绕纯文本,那么一切都正常,但我将呈现到结果中。为了使{{html}}标记正常工作,我可以在我的内容周围创建一个伪标记,但我不希望它出现在呈现的结果中 我还想使用这个相同的包装器,如果可能的话,包装实际上也会生成HTML的模板,所以如果相同的包装器模板可以同时适用于这两种情况,
标记)围绕纯文本,那么一切都正常,但我将
呈现到结果中。为了使{{html}}标记正常工作,我可以在我的内容周围创建一个伪标记,但我不希望它出现在呈现的结果中
我还想使用这个相同的包装器,如果可能的话,包装实际上也会生成HTML的模板,所以如果相同的包装器模板可以同时适用于这两种情况,那就更好了
这是我的密码:
$("#x").html($("#myTmpl").tmpl());
以下内容包装了一些非HTML内容:{{wrap“#wrapper”}}帮助{{/wrap}
包装内容:{html$item.html}
这段代码可以在这个jsFiddle中找到:我最终找到了一个解决方案。我创建了一个使用伪标记包装纯文本(甚至是其他模板生成的html),然后创建了一个传递到模板调用的函数,该函数可以去掉伪标记。我这样调用它:
{{html$data.clean($item)}
。“clean”函数需要访问内部模板返回的内容,我发现它是$item.wrapped[0]
。一旦我有了那个内容,我就可以从clean函数返回它的内部html
不过,我担心是否应该访问$item.wrapped
最终,我可能会尝试重构代码,使其不需要这个伪标记和清理功能
此解决方案可在以下位置找到:
编辑:还有另一种方法可以调用appendTo将模板html附加到另一个DOM元素,然后将数据提取出来。有没有可能重构代码以使用
{tmpl}
标记(而不是{wrap}
)是的,但是在我尝试包装之前和之后,我需要一个{tmpl}}。