小胡子 - 将数组发送到js函数

时间:2012-05-30 14:44:17

标签: templates mustache

我有以下问题

DATA:

var json = {'data': [{'id': '1', 'members': [{'name':'First member', 'age': '23'},{'name':'Second member', 'age': '31'}] }]}

JSON是从头顶写的,所以它可能无效,不是那么重要。

MUSTACHE.tmpl

{{#data}}
{{#members}}
<script>myJsFunction( all_members_attributes_as_json )</script>
{{/members}}
{{/data}}

所以一般来说,我想把整个胡子数组传递给我的JS函数

1 个答案:

答案 0 :(得分:0)

关于这样:

添加一个函数,用于将您的成员映射到JSON字符串:

_.each(json.data, function(el) {
    el.jsonMembers = function() {
        return _.map(this.members, function(member) {
            return JSON.stringify(member);
        });
    };
});

请注意,我在这里使用了_.each_.map ...如果您不使用Underscore,请替换为您喜欢的迭代器,或者使用vanilla for循环。或者只使用Underscore,因为它可以让生活更美好。

然后您将访问字符串化版本而不是正常版本:

{{#data}}
{{#jsonMembers}}
<script>myJsFunction({{{ . }}})</script>
{{/jsonMembers}}
{{/data}}