在 responseText 上使用 jquery-tmpl

Using jquery-tmpl on responseText

我目前正在尝试填充 jquery-模板,我通过使用 ajax 获得服务器上的另一个文件夹。我想填写通过 .tmpl({..}) 获得的响应文本。遗憾的是那没有用。这就是我所做的。

var a = $.ajax({
   method: 'GET',
   url : 'TemplateUrl/template.html'
});
$.when(a).done(function(){
   $(a.responseText).tmpl({...});
});

responseText 是来自 SharePoint 网站的一段非常简单的 html,看起来像这样

    "<div>
<td class="ms-formbody">
    <!--    FieldName="{{html FieldName}}"
            FieldInternalName = "{{html FieldName}}"
            FieldType = "SPFieldText" -->
    {{html Text}}
</td>
</div>"

在尝试填写模板时我得到了这个

Uncaught TypeError: Failed to construct 'Text': Please use the 'new' operator, this DOM object constructor cannot be called as a function.

也许你们有想法。会很好。在此先感谢

你好,克里斯

它抛出错误的原因是因为您试图将 temp() 作为函数调用而不是实例化它。

尝试在 $(a.responseText).tmpl({...}).

前面使用新关键字

好吧,一旦我得到答案,答案就没那么难了,也很合乎逻辑。模板引擎需要脚本包装器才能正常工作。所以 html 需要看起来像这样

<script type="text/x-jQuery-tmpl">
    <div>
        <td class="ms-formbody">
            <!--    FieldName="{{html FieldName}}"
                    FieldInternalName = "{{html FieldName}}"
                    FieldType = "SPFieldText" -->
            {{html Text}}
        </td>
        </div>
</script>