2014-06-10 55 views
0

嗨,我是新來這個Mustache.js 我有一個模板和JS代碼如下Mustache.js:我怎樣才能添加外部模板

var template = $('#pageTpl').html(); 
    var html = Mustache.to_html(template, data); 
    $('#sampleArea').html(html); 

,這是模板代碼:

<script id="pageTpl" type="text/template"> 
    <div data-role='page' id='videodiv_{{device_id}}'> 
     <div data-role=header> 
      <h1> Device Page </h1> 
     </div> 
     <div data-role=content> 
      <img id='vid_{{device_id}}' src='http://localhost//mjpg/{{device_id}}' width='320'> 
     </div> 
    </div> 
</script> 

當我在HTML頁面中保存模板腳本時,此代碼正常工作。但我想分開保存模板並使用它。 有沒有辦法做到這一點?

+0

https://www.npmjs.org/package/grunt-mustache – joews

回答

4
$(document).on('pageinit', function() { 
    $.getJSON('assets/data/channels.json', {}, function(channelData, textStatus, jqXHr) { 
     var channelList = $('#channels'); 

     $.get('assets/templates/channelList.mustache.html', function(template, textStatus, jqXhr) { 
      channelList.append(Mustache.render($(template).filter('#channelTpl').html(), channelData)) 
      channelList.listview("refresh"); 
     }); 
    }); 
}); 

來源:http://www.levihackwith.com/how-to-load-mustache-js-templates-from-an-external-file-with-jquery/

+0

我tryng使用您的解決方案從模板創建一個頭,但是當我試圖要訪問該文件,安全策略(Cross origin不支持html)阻止我訪問它。我怎麼能使用這個例子(知道我不能使用服務器,因爲它也是設計用於Android Webview(離線)。謝謝 – AxelH