如何实现:doT模板结合下拉加载更多?

lintanfu 2018-05-25 09:50:30
如题。我用doT.js模板引擎,渲染数据。每次从数据库返回一个数组,
然后doT模板里循环渲染,其中这些数据需要用到一个很重要的参数index


模板代码:

<script id="interationTemp" type="text/x-dot-template">
{{~it:value:index}}
<text onclick = "seeDetail({{=index}})">详情</text>
{{~}}
</script>



渲染:

var interation = doT.template($('#interationTemp').innerHTML);
var interationData = ret.list
$('#interation').innerHTML = interation(interationData);



我的seeDetail代码:

function seeDetail(index) {
var i = list[index].xx; //list为每次从后台获取到的数组数据
//其他逻辑
}


假如我下拉刷新,保留页面上先前的数据,那么渲染应该:
$('#interation').innerHTML += interation(interationData); //即拼接到后边

这样拼接是可以显示,且保留了先前的数据。
假设每次返回十条数据,即list.length = 10
但是,由于每次渲染都是循环数组list,所以拼接后的新渲染的数据的index,依然是0-9,而本来是希望为10-19、20-29...
而且由于list也被更新了,那么相当于获取不到准确的index对应的数据。

实在想不到有什么好的解决方案。希望有高人可以指点迷津。(不知道问题描述得够不够清楚)
...全文
641 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Hello World, 2018-05-26
  • 打赏
  • 举报
回复
可以弄个全局变更,每次增加数据都更新全局变量,获取index时加上全局变量的值,不过还是建议用数据的key来替代index
lintanfu 2018-05-26
  • 打赏
  • 举报
回复
引用 1 楼 apollokk 的回复:
可以弄个全局变更,每次增加数据都更新全局变量,获取index时加上全局变量的值,不过还是建议用数据的key来替代index
就是id吗?还有我发现用mysql 的limit语句时,比如limit 0,10,这个10是指:取10条(不满足条件自动跳过,去满10条为止)还是指:扫描十条(再把十条中满足条件的返回) 我还做了一些条件限制,发现总是会丢数据。不知道为何。有时候能返回某条数据,有时候不能返回某条数据。很奇怪

87,994

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧