我剛開始玩弄的把手,我很努力去理解如何加載頁面加載一些項目,然後在ajax請求,加載更多的項目,並將它們追加到內容使用相同的模板。頁面正確加載初始數據,但在第二個請求中,所有初始數據都會被覆蓋。把手模板 - 附加項目
的div來容納所有的內容都#recipes
<a href="#" id="more">Show More</a>
<div id="recipes">
<script id="Handlebars-Template" type="text/x-handlebars-template">
<div id="Content">
{{#each Recipes}}
<div class='Box'>
<h3>{{Name}}</h3>
</div>
{{/each}}
</div>
</script>
</div>
<script type="text/javascript">
$.ajax({
url : 'Recipe.php',
success:function(data){
var Recipes = JSON.parse(data);
var Source = document.getElementById("Handlebars-Template").innerHTML;
var Template = Handlebars.compile(Source);
var HTML = Template({ Recipes : Recipes });
document.getElementById('recipes').innerHTML +=HTML;
}
});
</script>
而當用戶點擊「顯示更多」下面的代碼運行
<script>
$(function(){
$('#more').click(function(e){
$.ajax({
url : 'Recipes2.php',
success:function(data){
var Recipes = JSON.parse(data);
var Source = document.getElementById("Handlebars-Template").textContent;
var Template = Handlebars.compile(Source);
var HTML = Template({ Recipes : Recipes });
$('#recipes').append(HTML);
}
})
});
});
</script>
被退回所有的數據是正確的,這只是初始數據被覆蓋而不是附加到。我有一種感覺,這與我的模板設置和模板過程的普遍缺乏理解有關。我偶然發現了「偏見」的想法,但不知道這是我應該使用的。任何人能夠告訴我這樣的事情應該如何構建或指向我一個有用的教程?我見過的所有東西似乎都集中在替換所有數據上,或者只在初始加載時工作。
感謝