【问题标题】:Iterate over an array of objects in Handlebars?遍历 Handlebars 中的对象数组?
【发布时间】:2018-07-22 05:51:44
【问题描述】:

已经通过这个 SO 解决方案(以及更多)但无济于事:

How to iterate over array of objects in Handlebars?

鉴于此:

feeds: [

    {
        name: "Guardian",
        data: "empty"
    },

    {
        name: "TechCrunch",
        data: [
            {
                "title": "Instagram is testing screenshot alerts for stories",
                "author": "Fitz Tepper"
            },
            {
                "title": "A group of industry insiders are putting Russian election meddling up for ad awards",
                "author": "Jonathan Shieber"

            },
            {
                "title": "The Trump administration is reportedly moving to privatize the International Space Station",
                "author": "Jonathan Shieber"
            }
        ]
    },

    {
        name: "BBC",
        data: "empty"
    }
]

如何从“数据”数组中获取“标题”信息? “feeds”对象正在渲染参数中传递给 .hbs。到目前为止,我已经能够提出以下内容,在 HTML/.hbs 页面上显示为空白:

.hbs

        <div class="tab-pane fade in" id="{{name}}" role="tabpanel">

            <div id="results">
                <script id="data-template" type="text/x-handlebars-template">
                    <div>
                        {{#data}}
                            {{#each this}}
                                {{title}}
                            {{/each}}
                        {{/data}}
                    </div>
                </script>

            </div>

        </div>

   <script>
        $(function () {
            let source = $("#data-template").html();
            let template = Handlebars.compile(source);
            let html = template({{contents}});
            $('#results').html(html);
        }
        );
    </script>

感谢您对此进行调查!

【问题讨论】:

    标签: handlebars.js


    【解决方案1】:

    替代答案

    {{#each feeds}}
      {{#each data}}
        {{title}}
      {{/each}}  
    {{/each}}
    

    【讨论】:

    • 我们如何在表格行中显示它?
    【解决方案2】:

    由于titleauthor 键位于feeds 数组的第二项内,因此您应该参考以下对象。

    {{#each feeds.[1].data}}
      {{title}}
    {{/each}}
    

    【讨论】:

    • 我在“模板”方法 ( ) 以及直接注入标记中都尝试了您的解决方案,但它们不起作用。无论如何,感谢您对此进行调查。
    • hello @gibinealias - 不,我试过
      {{#each feeds.[1].data}} {{title}} {{/each}}
      无论如何,我不得不修改我的数据对象('feeds')并且还稍微改变了文件结构,所以我现在做的有点不同。感谢您的帮助。
    • 空白的&lt;div&gt;&lt;/div&gt; 打印在您的页面上吗?
    • 看起来您的 Handlebars 初始化/声明有问题。我能够打印所需的输出HERE。请看看,让我知道你的 cmets。
    • 我也这么认为。现在,我正在完成这个没有 Handlebars 的应用程序(它实际上更像是我被分配的任务),但我稍后会用 Handlebars 重做这个应用程序,因为我真的很喜欢 Handlebars 语法并且想要更多地使用它经常。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2015-10-27
    • 2012-09-07
    • 2015-04-21
    • 2014-05-08
    • 1970-01-01
    • 1970-01-01
    • 2017-09-19
    相关资源
    最近更新 更多