1

我正在使用 jQuery 模板插件将单独的 html 文件呈现为模板。我的一个模板如下所示:

<div class="row">
    <div class="span4">
        test1
    </div>
    <div class="span4">
        test2
    </div>
    <div class="span4">
       test3
    </div>
</div>

出于测试目的,我实际上还没有渲染任何数据。

当我使用 firebug 进行调试时,我可以看到我的 ajax 调用获取了正确的 html(与上面完全相同)。然后我使用一个 json 对象(存储在 var 中data)来填充我检索到的模板(存储在 var 中template),如下所示:

$.tmpl(template, data).appendTo('#person-item-placeholder');

生成的 html(由萤火虫检查)是这样的(注意缺少的div元素)

<div id="person-item-placeholder">
    <div class="span4">test1‌&lt;/div>
    <div class="span4">‌test2‌&lt;/div>
    <div class="span4">test3‌&lt;/div>
</div>

如何防止模板插件删除该元素?

4

2 回答 2

2

jQuery.tmpl领域的文档有点模糊

从表面上看,您尝试过的应该可以工作,但模板参数选项之一显示为:

模板参数可以是 .... 一个 HTML 元素(或包装元素的 jQuery 对象),其内容将用作模板。

这里的关键词是“内容”,换句话说,包装器被丢弃了,尽管它没有说在传递字符串时会发生这种情况。忽略这一点,症状与问题中的描述完全相同。

一种可能的解决方案是将模板预先包装在一个虚拟容器中,例如一个 div。

如果我是对的,那么这应该有效:

$.tmpl('<div>+'template+'</div>', data).appendTo('#person-item-placeholder');

或许 :

$.tmpl($(template).wrap('<div/>'), data).appendTo('#person-item-placeholder');
于 2012-05-08T22:24:09.510 回答
0

请浏览jquery 模板文档此页面上的示例,您遗漏了其他内容......

还要检查是否有任何丢失的标签......这一定是导致它的原因......其他一切似乎都很好......仍然与示例进行交叉检查

于 2012-05-08T21:22:10.650 回答