如何使用递归模板? [英] How to use recursive template?
本文介绍了如何使用递归模板?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我不知道如何处理模板中的递归数组.我在 handlebarsjs 的文档中找不到任何内容
有我的代码:js:
<前>var 分支 = [{name:"firstLayerNodeA",has_branch:真,分支:[{name:"secondLayoutNodeA",has_branch:假},{name:"secondLayoutNodeB",has_branch:真,分支:[{name:"thirdLayerNodeA",has_branch:真,分支:[{//第四层//第五层//.....}]}]}]},{name:"firstLayerNodeB",has_branch:假}]html
<块引用><ul>{{#每个分支}}<li>名称{{#if has_branch}}<ul>{{#每个分支}}<li>名称{{#if has_brach}}{{#每个分支}}.....第三层.....第四层....{{/每个}}{{/如果}}{{/每个}{{/如果}}{{/每个}}</模板>
在模板中有处理分支的好主意吗?任何帮助表示赞赏.
解决方案
您可以使用嵌套模板:
客户端js
Template.tree.branch = function() {var 分支 = ...返回分支;}
HTML
<ul>{{#每个分支}}<li>{{> 分支}}{{/每个}}模板><模板名称=分支">{{名称}}{{#if branch.length}}<ul>{{#每个分支}}<li>{{> 分支}}{{/每个}}{{/如果}}模板>
此外,您实际上并不需要 has_branch
.只需检查分支数组的长度,因为每个数组只会在它是一个数组并且那里有东西时才会循环
I don't know how to deal with recursive array in template.and I can't find anything in handlebarsjs's docs
there are my codes: js:
var branch = [{ name:"firstLayerNodeA", has_branch:true, branch:[{ name:"secondLayoutNodeA", has_branch:false },{ name:"secondLayoutNodeB", has_branch:true, branch:[{ name:"thirdLayerNodeA", has_branch:true, branch:[{ //fourth Layer //fifth Layer //..... }] }] }] },{ name:"firstLayerNodeB", has_branch:false }]
html
<Template name="tree"> <ul> {{#each brach}} <li> name {{#if has_branch}} <ul> {{#each brach}} <li> name {{#if has_brach}} {{#each brach}} .....third layer .....fourth layer .... {{/each}} {{/if}} </li> {{/each} </ul> {{/if}} </li> {{/each}} </ul> </Template>
There are good ideas that deal with branch in template? Any help is appreciated.
解决方案
You can use nested templates:
client side js
Template.tree.branch = function() {
var branch = ...
return branch;
}
Html
<template name="tree">
<ul>
{{#each branch}}
<li>
{{>branch}}
</li>
{{/each}}
</ul>
</template>
<template name="branch">
{{name}}
{{#if branch.length}}
<ul>
{{#each branch}}
<li>
{{>branch}}
</li>
{{/each}}
</ul>
{{/if}}
</template>
Also you don't really need has_branch
. Just check the length of the branch array instead as each will only loop if its an array and theres stuff in there
这篇关于如何使用递归模板?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文