7

我正在尝试在javascript中使用小胡子模板渲染一组对象数组,但我还没有找到其他人问过这个问题。我可以很好地渲染一组对象,但我不知道如何渲染它们的数组。我想我可以将每个嵌套数组分配给它自己的变量,但是它们可以有任意数量,所以我真的需要将它们保留为一个数组。

这是我需要渲染的数据类型:

[
    [
        { id: 12345, name: "Billy" },
        { id: 23456, name: "Joe" },
        { id: 34567, name: "Jenny" }
    ],
    [
        { id: 45678, name: "Amy" },
        { id: 56789, name: "Julie" },
        { id: 67890, name: "Sam" }
    ]
]

外部数组可以包含任意数量的嵌套数组,每个嵌套数组可以包含任意数量的对象。

我不知道它是否可能与胡子。我尝试使用函数,这是我第一次使用带有胡子的函数,所以也许我做错了什么。我从主干视图的渲染函数中调用它。数组数组(如上所示)是视图模型属性的一部分。所以这就是我尝试过的。

render:
    function ()
    {
        this.model.attributes.getList =
            function ()
            {
                return  function (str, func) { return 'What in the world should I return here?'; }
            }

        this.$el.html (Mustache.render ($ ('#detail-template').html (), this.model.attributes));

        return this;
    },

这是我尝试使用该功能的模板部分。

{{#getList}}
    {{name}}
{{/getList}}

我很确定 {{name}} 不属于那里,但我不知道我还会在那里放什么。

我尝试返回 func (str),但它打印的只是一个长字符串,其中包含 [object Object]、[object Object]、[object Object]、[object Object]、[object Object]、[object Object]、[object对象],[对象对象]

我不能将该字符串用作 json 对象,它只是一个字符串。

我对骨干和胡子都有些陌生,所以我认为有人可能对此有“最佳实践”解决方案,或者至少可以告诉我这是否不可能,所以我不会再浪费时间了。我在互联网上的任何地方都找不到类似的问题。

4

1 回答 1

6

这个问题已经有 2 年历史了,但我想迟到总比没有好。您可以使用 {{.}} 来引用数组中的当前元素。

context = [
    [
        { id: 12345, name: "Billy" },
        { id: 23456, name: "Joe" },
        { id: 34567, name: "Jenny" }
    ],
    [
        { id: 45678, name: "Amy" },
        { id: 56789, name: "Julie" },
        { id: 67890, name: "Sam" }
    ]
]

template = "
    {{#context}}
        {{#.}}
            <span id={{id}}>{{name}}</span>
        {{/.}}
    {{/context}}
"
于 2016-01-04T08:15:16.747 回答