【发布时间】:2012-03-30 11:14:37
【问题描述】:
我得到一个未捕获的 RangeError:当我第 4 次调用我的分页函数 getCollection() 时,超出了最大调用堆栈大小,我不确定为什么会发生问题。如果我发现以下行:
jQuery('#card ul').append(template.render(data));
并取消注释它下面的警报(为了理智),它似乎在第 4 页之后运行良好。
我使用的是 jQuery 1.7.1 和 Boris Moore's jsrender library,在异步渲染更大的数据集之前从未遇到过问题。
var myCollection = {
data: null,
count: 0,
page: 0,
pageSize: 24
}
function getCollection(collection) {
if (collection.length > 0) {
var values = "",
template = jQuery('#template');
for (var i = myCollection.page * myCollection.pageSize; i <= ((myCollection.page + 1) * myCollection.pageSize) - 1; i += 1) {
if (i != ((myCollection.page + 1) * myCollection.pageSize) - 1) {
values += collection[i].card + ",";
} else {
values += collection[i].card;
}
}
jQuery.ajax({
url: '/api/cards?key=id&value=' + values,
dataType: 'json',
success: function (data) {
if (data) {
jQuery('#card ul').append(template.render(data));
//alert(myCollection.page);
}
}
});
myCollection.page++;
}
非常感谢任何帮助!
【问题讨论】:
-
模板是javascript中注册的关键字;不要使用它。
-
我搜索了两个地方。两者都没有“模板”作为关键字。你还有问题吗?
-
是@DhaivatPandya提到的注册关键字,谢谢!
标签: javascript jquery google-chrome jsrender