我想创建一个JS代码来创建许多嵌套页面。这是一个创建5个嵌套页面(5个深度级别)
的示例.even td {
background-color: #c0c0c0;
}
.fixed-col {
position: absolute;
left: 0;
width: 50px;
}
table {
margin-left: 50px;
/* let's see where table stands (so trs and tds in the flow */
border:solid;
}
如何转换上述代码以创建任意数量的嵌套页面? 目前,我正在使用jQuery。如果你建议任何Promise库来解决这个问题,这很好。
谢谢。
答案 0 :(得分:2)
承诺旨在被链接,您从一个done
返回的内容将由链中的下一个done
解决:
this._genPage(spaceKey, parentPageId)
.done(function (createdPage) {
return self._genPage(spaceKey, createdPage.id);
}).done(function (createdPage) {
return self._genPage(spaceKey, createdPage.id);
}); // etc
可以进行一些简单的递归(甚至循环)来使这个级别更深。
function genPagesRecursive(spaceKey, id, depth){
if(depth == 0){
return 'Data Generated';
}
return self._genPage(spaceKey, id).done(function(createdPage){
return genPagesRecursive(spaceKey,id,--depth);
})
}
您甚至可以在调用递归方法时链接另一个done
:
genPagesRecursive(spaceKey, creadtedPage.id, 5).done(function(msg){
Util.showSuccessMessage(msg);
});
答案 1 :(得分:1)
简单的递归就可以了。
function createNestedPages(spaceKey, parentPageId, numberOfPages) {
if (numberOfPages <= 0) {
return;
}
this._genPage(spaceKey, parentPageId).done(function (createdPage) {
createNestedPages(spaceKey, createPage.id, numberOfPages - 1);
});
}