backbone.js 如何呈现带有小胡子的对象数组的数组

6mzjoqzu  于 2022-11-10  发布在  其他
关注(0)|答案(1)|浏览(112)

我尝试用javascript中的mustache模板来呈现一个对象数组,我还没有发现其他人问过这个问题。我可以很好地呈现一个对象数组,但我不知道如何呈现一个对象数组。我可以给每个嵌套数组赋值给它自己的变量,但它们可能有任意多个,所以我真的需要把它们作为一个数组来保存。
下面是我需要呈现的数据类型:

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

外部数组可以包含任意数量的嵌套数组,并且每个嵌套数组可以包含任意数量的对象。
我不知道这是否适用于mustache。我试着使用一个函数,这是我第一次使用mustache函数,所以可能我做错了什么。我是从一个 Backbone.js 视图的render函数调用它的。数组的数组(如上所示)是视图模型属性的一部分。所以这里是我所尝试的。

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对象]的长字符串。
我不能把那个字符串作为json对象,它只是一个字符串。
我对脊椎和胡子都不太熟悉,所以我想有人可能会有一个“最佳实践”的解决方案,或者至少可以告诉我,如果这是不可能的,这样我就不会在上面浪费时间了。我在互联网上找不到类似的问题。

jogvjijk

jogvjijk1#

这个问题已经有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}}
"

相关问题