【发布时间】:2017-06-19 08:41:15
【问题描述】:
我在使用 jsrender 在表中创建 900 列时遇到错误。我使用了下面的代码。
var i = 0, htmlStr = "<tr style = 'height: {{:height}}px' idx = '{{:rowidx}}'>" , colgrp = document.createElement("colgroup"), templates ={obj:""};
while (i < 900) {
colWth = 20;
colHdr = "A" + 1;
col = document.createElement("col");
col.style["width"] = colWth + "px";
htmlStr += "<td class='{{:" + colHdr + "_className}}' rowspan=' {{:" + colHdr + "_rspan}}' colspan=' {{:" + colHdr + "_cspan}}'>{{:" + colHdr + "_value}}</td>";
colgrp.append(col);
i++;
}
templates["obj"] = htmlStr + "</tr>";
$.templates(templates);
在运行示例时出现错误。
JsViewsError {name: "JsRender Error", message: "语法错误↵Compiled template code:↵↵// obj↵var v...↵return ret;↵: "Maximum call stack size exceeded""}
> jsrender-1.0.0-beta.js 中出现的错误。在确切的 jsrender-1.0.0-beta.js 版本中运行良好。您能否建议任何适用于所有版本的解决方案。
JSFiddle 链接:https://jsfiddle.net/z8fqs1yb/2/
【问题讨论】:
-
确保你的递归函数有一个可以满足的基本情况
-
@NikhilNanjappa 请检查 JSFiddle 链接
标签: javascript jquery html jsrender