【问题标题】:Convert JSON string to underscore template with _.template使用 _.template 将 JSON 字符串转换为下划线模板
【发布时间】:2013-05-01 21:41:27
【问题描述】:

http://jsfiddle.net/rBhfx/6/

我正在尝试使用 JSON 字符串输出到下划线模板:

var renderFurniture = function() {
    var list = $('#list-json').text(),
        template = _.template( $('#furniture-template').html() ),
        compiled = template(list);
        return compiled;
}

var $furnitureList = renderFurniture();

$('body').append($furnitureList);

但它只是输出“结果”。

我在这里做错了什么? JSON 格式是否正确?谢谢!

以及 HTML 和模板:

<div id="list-json">   
{
    "name": "Chair",
    "title": "Chairs",
    "items": [
        {
            "name": "Recliner",
            "title": "Recliner Chair",
            "type": "Chair",
            "quantity": "1"
        },
        {
            "name": "Club/Armchair",
            "title": "Club/Armchair",
            "type": "Chair",
            "quantity": 1
        }
    ]
}
</div>

<div class="accordion fl" id="items-index">
    <div class="accordion-group">
    </div>
</div>



<!-- Template -->
<script type="text/html" id="furniture-template">
    <div class="accordion-heading">
        <a class="accordion-toggle" data-toggle="collapse" href="#items-group1">
            <%= name %>
        </a>
    </div> <!-- header -->
</script>

【问题讨论】:

    标签: javascript jquery json backbone.js underscore.js


    【解决方案1】:

    您需要解析 JSON,使用 $.parseJSONJSON.parse

    var renderFurniture = function() {
        var list = $('#list-json').text(),
            template = _.template( $('#furniture-template').html() ),
            compiled = template( $.parseJSON(list) );
            return compiled;
    }   
    

    fiddle

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-24
    • 2020-02-11
    相关资源
    最近更新 更多