如何在流星中显示来自集合的多维数据

时间:2014-12-05 18:06:26

标签: mongodb meteor

如何显示集合中的多维数据。说我有这个

links.insert({
cat:[{
    name:'js',
    sub:[{
        name:'angularJS',
        links:[{
            url:'something.com'},{url:'another.com'}]
        },{
        name:'meteorJS',
        links:[{
            url:'something.com'},{url:'another.com'}]
        }]
    }]
});

像这样检索帮助器中的数据

'links':function(){
    return links.find();  // also tried links.find().fetch()

一个选项是为特定数据使用单独的帮助程序。但我想使用单个帮助器,它将接收整个数据并显示它像

{{‪#‎each‬ links}}
    {{cat.name}} : {{sub.name}} : {{links.url}}
{{/each}}

3 个答案:

答案 0 :(得分:1)

你试过了吗?

{{#each link}}
    {{cat.[0].name}}  :  {{cat.[0].sub.[0].name}}  :  {{cat.[0].sub.[0].links.[0].url}}
{{/each}}

答案 1 :(得分:0)

JSON无效。你的助手看起来像这样:

Template.yourTemplate.helpers({
      link: function () {
          var cat = [
                        {
                            "name": "meteorJS",
                            "sub": [
                                {
                                    "name": "angularJS",
                                    "links": [
                                        {
                                            "url": "something.com"
                                        },
                                        {
                                            "url": "another.com"
                                        }
                                    ]
                                },
                                {
                                    "name": "angularJS",
                                    "links": [
                                        {
                                            "url": "something.com"
                                        },
                                        {
                                            "url": "another.com"
                                        }
                                    ]
                                }
                            ],
                            "links": []
                        }
                    ];
        return cat;
      }
    });

模板看起来像这样:

<template name="yourTemplate">
    {{#each link}}
        {{name}}  :  {{sub.[0].name}}  :  {{sub.[0].links.[0].url}}
    {{/each}}
</template>

答案 2 :(得分:0)

当你必须遍历元素时,你应该使用{{#each foo}},其中foo是每个元素内部使用的上下文。

{{#each link}}
    {{ name }} :
    {{#each sub}}
        {{ name }} :
        {{#each links}}
            {{ url }}
        {{/each}}
    {{/each}}
{{/each}}

请注意,它正在调用{{ name }}而不是{{ cat.name }},对于下一个名称和网址都是如此。

相关问题