在responseText上使用jquery-tmpl

时间:2017-05-15 15:16:40

标签: javascript jquery ajax sharepoint-2013 jquery-templates

我目前正在尝试通过在服务器上的另一个文件夹上使用ajax get来填充jquery-templates。我想填写我通过.tmpl({..})获得的responseTexts。可悲的是,这不起作用。这就是我的所作所为。

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.

也许你们有个主意。会很好。提前致谢并

问候克里斯

2 个答案:

答案 0 :(得分:0)

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

尝试在$(a.responseText).tmpl({...})前面使用new关键字。

答案 1 :(得分:0)

好的,一旦我拥有它,答案就不那么难了也很合乎逻辑。模板引擎需要脚本包装器才能正常工作。所以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>