首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用节拍转换树结构

使用节拍转换树结构
EN

Stack Overflow用户
提问于 2012-01-23 23:55:39
回答 2查看 270关注 0票数 2

我已经开始在一个小的Web项目中使用JSON数据结构而不是XML。我需要对数据进行一些转换,就像您通常对XSLT on XML所做的那样,然后我偶然发现了一个很酷的库http://tempojs.com

但当我意识到我的数据是一个树形结构时,真正的问题出现了,我想在转换中需要一些递归。

以下是数据结构的示例:

代码语言:javascript
复制
[
        {
            "text" : "The sun is shining",
            "children" : []
        },
        {
            "text" : "it's cloudy.",
            "children" :  
            [
                {   
                    "text" : "It's raining.",
                    "children" : []
                },
                {
                    "text" : "The sun was shining.",
                    "children" : []
                },
                {
                    "text" : "A rainbow appeared.",
                    "children" : 
                    [
                        {   
                            "text" : "A pot of gold was found at the end of the rainbow.",
                            "children" : []
                        },
                        {
                            "text" : "The gold returned more than a million dollars, when sold.",
                            "children" : []
                        }
                    ]
                }
            ]
        }
    ]

我想转换成一个嵌套的HTML列表,如下所示:

代码语言:javascript
复制
<ul>
    <li>The sun is shining</li>
    <li>it's cloudy.
        <ul>
            <li>It's raining.</li>
            <li>The sun was shining.</li>
            <li>A rainbow appeared.
                <ul>
                    <li>A pot of gold was found at the end of the rainbow.</li>
                    <li>The gold returned more than a million dollars, when sold.</li>
                </ul>
            </li>
        </ul>
    </li>
</ul>

你知道怎么用Tempo做到这一点吗?

EN

回答 2

Stack Overflow用户

发布于 2012-08-31 19:03:23

Tempo 1.x无法处理多级嵌套模板。但是,2.0-dev分支支持这一点,并且在我看来可以正确地呈现您的数据:http://jsfiddle.net/mr_olafsson/wLEQs/

请注意,该示例确实暗示了固定(且相等)数量的级别/嵌套模板。让我知道你的进展如何!抱歉,回复晚了。

票数 0
EN

Stack Overflow用户

发布于 2012-01-24 02:29:23

我不知道节拍,我用underscore.js代替。

它将是这样的:

代码语言:javascript
复制
var mytemplate = "
<%= text %>
<ul>
    <% _.each(children, function(child){ %>
    <li><%= child.text %></li>
    <li><%= _.template(mytemplate, child.children) %>
    </li>
</ul>
";

var htmlResult = _.template(mytemplate, myJSON);
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8974469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档