2017-05-15 413 views
0

我正在嘗試填充jquery-templates,通過使用ajax獲取服務器上的另一個文件夾。我想填充通過.tmpl({..})獲得的responseTexts。可悲的是,這沒有奏效。這就是我所做的。在responseText上使用jquery-tmpl

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

這個responseText是從SharePoint網站看起來像這樣

"<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. 

也許你們有一個非常簡單的HTML的一部分一個主意。會很好。在此先感謝和

問候克里斯

回答

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> 
0

它引發錯誤的原因是因爲你試圖調用溫度()的函數,而不是將其實例化的。

嘗試在$(a.responseText).tmpl({...})前使用新的關鍵字。

+0

感謝您的快速回復。還嘗試了新的$(a.responseText).tmpl({...}); 不幸的是,它給了我同樣的結果。首先做 var b = new $(a.responseText); b.tmpl({...}); 不起作用 – Chris