【问题标题】:jQuery/jsrender - Uncaught RangeError: Maximum call stack size exceededjQuery/jsrender - 未捕获 RangeError:超出最大调用堆栈大小
【发布时间】: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


【解决方案1】:

正如@Dhaivat Pandya 建议的那样,模板是一个注册关键字。感谢您的帮助!

【讨论】:

    猜你喜欢
    • 2013-05-17
    • 1970-01-01
    • 2012-08-15
    • 2018-01-24
    • 1970-01-01
    • 1970-01-01
    • 2015-10-28
    • 2014-08-01
    相关资源
    最近更新 更多