首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在handlebar js中使用这个json

如何在handlebar js中使用这个json
EN

Stack Overflow用户
提问于 2014-01-22 17:01:43
回答 2查看 6.3K关注 0票数 1

下面是完整的代码。

HTML部件:

代码语言:javascript
复制
<script id="company_template" type="text/x-handlebars-template">                            
{{#each CDataMap}}
<div>{{this}}</div>
{{/each}}
<p></p> 
</script>

JS部件

代码语言:javascript
复制
var source   = $("#company_template").html();
var template = Handlebars.compile(source);

var data= {
"CDataMap" : {
"name": "Jim Cowart",
"location": {
"city": {
    "name": "Chattanooga",
    "population": 167674
},
"state": {
    "name": "Tennessee",
    "abbreviation": "TN",
    "population": 6403000
}
},
"company": "appendTo"
}
};

$("p").append(template(data)); 

我想使用handlebars js来使用它。

当我使用它时,只显示对象对象。

我需要正确的代码。

EN

回答 2

Stack Overflow用户

发布于 2014-01-22 18:29:33

Handlebar每个都需要迭代元素。您提供的数据需要修改。下面的代码可以工作

代码语言:javascript
复制
<script id="company_template" type="text/x-handlebarstemplate">                            

{{#each CDataMap}}

<div>Name : {{this.name}} <br/>

    Location: {{this.location.city.name}} <br />
    Population: {{this.location.city.population}}
</div>
{{/each}}

</script>
<p></p> 

JS侧

代码语言:javascript
复制
var data= {
"CDataMap" : [
    {
        "name": "Jim Cowart",  
        "location": {
            "city": {
                "name": "New york",
                "population": 494949494
                }
        }
    },

  ]
};

var templateSource   = $("#company_template").html();
template = Handlebars.compile(templateSource);
studentHTML = template(data);
$("p").append(studentHTML);
票数 0
EN

Stack Overflow用户

发布于 2014-01-22 22:26:58

这个例子的问题是CDataMap不是一个对象数组,所以您不能遍历它们。这是一个有效的示例:

代码语言:javascript
复制
<script>
    (function ($) {
        $(function () {
            var source = $("#company_template").html();
            var template = Handlebars.compile(source);

            var data = {
                "CDataMap": [{
                    "name": "Jim Cowart",
                    "location": {
                        "city": {
                            "name": "Chattanooga",
                            "population": 167674
                        },
                        "state": {
                            "name": "Tennessee",
                            "abbreviation": "TN",
                            "population": 6403000
                        }
                    },
                    "company": "appendTo"
                }]
            };

            $("p").append(template(data));
        });
    })(jQuery);
</script>

此外,p标记或用于放置结果的任何元素都必须位于模板之外,如下所示:

代码语言:javascript
复制
<script id="company_template" type="text/x-handlebars-template">
    {{#each CDataMap}}
        <div>{{this.name}}</div>
        <div>{{this.location.city.name}}</div>
    {{/each}}
</script>

<p></p>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21278369

复制
相关文章

相似问题

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