我刚开始玩把手,我正在努力理解如何在页面加载时加载一些项目,然后在 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>
返回的所有数据都是正确的,只是初始数据被覆盖而不是附加到。我觉得这与我的模板设置方式和对模板过程的普遍缺乏了解有关。我偶然发现了“部分”的想法,但不确定这是否是我应该使用的。任何人都可以向我展示应该如何构建这样的东西,或者向我指出一个有用的教程吗?我所看到的一切似乎都集中在替换所有数据上,或者只适用于初始加载。
谢谢