更新:挖 到這個問題的另一天之後,我發現, 當前的jQuery模板LIB提供 沒有辦法做到這一點。 this article 描述了一個好方法。在單個xHttpRequest中打包多個jQuery模板的最佳方法是什麼?
我仍然想聽到任何 這樣做的其他想法。上面鏈接的 文章要求將 返回的模板串插入到DOM中的 。看起來好像 離開這個DOM將是理想的 ,並且在 瀏覽器上的開銷較少。想象一個大頁面, 多個複合模板可能不會使用 。儘管可能因爲 模板被包裝在腳本 標記中,但每個模板只有一個DOM項目?來吧,讓我們 聽到一些想法...
使用jQuery template libs,什麼對多個相關的,比較小的模板相結合的最佳方式?每個單獨的模板需要單個<script>
標籤嗎?在通過AJAX動態拉動這些模板的情況下呢?我能否以某種方式組合這些模板?
考慮以下幾點:
<script id="movieTemplate" type="text/x-jquery-tmpl">
{{tmpl "#titleTemplate"}}
<tr class="detail"><td>Director: ${Director}</td></tr>
</script>
<script id="titleTemplate" type="text/x-jquery-tmpl">
<tr class="title"><td>${Name}</td></tr>
</script>
現在因爲這兩個模板非常密切的關係(和一個依賴於其他)它將使意義鞏固這些成一個單一的AJAX調用,並讓他們都一旦。我有一些想法,但我想知道是否有共同/最好的方法來做到這一點?目前,我拉HTML的一大塊,然後做一個.find()來獲取HTML的具體peice的一個模板...例如:然後
var templatePackage = fancyAjaxCalltoGetTemplates();
「templatePackage」可能是這樣的:
<div id="templatePkg">
<div id="movieTemplate">
{{tmpl "#titleTemplate"}}
<tr class="detail"><td>Director: ${Director}</td></tr>
</div>
<div id="titleTemplate">
<tr class="title"><td>${Name}</td></tr>
</div>
</div>
話,我可以這樣做:
var titleTemplate = jQuery.template('titleTemplate', $(templatePackage).find('#titleTemplate'));
和
var movieTemplate = jQuery.template('movieTemplate', $(templatePackage).find('#movieTemplate'));
...讓我知道你在想什麼...你會怎麼做?
我也可以使用分隔符,並從單個響應中分割出一組模板。但必須有一個更優雅的方式來做到這一點與jQuery /模板 - 我缺少一些從模板文檔? – user406905 2010-12-11 04:36:39
我_think_我在這裏跟着你......你只是想解決所有的模板首先加載到你的渲染頁面的問題,然後只選擇你需要的幾個? – 2011-01-04 21:10:59
那就對了。我需要根據需要動態加載模板。 – user406905 2011-01-05 05:52:52