无法打印通过Handlebars模板传递的对象

时间:2018-02-14 02:58:08

标签: handlebars.js

我在 main.js:

中有以下内容
<head>
    <script src="//cdnjs.cloudflare.com/ajax/libs/handlebars.js/1.3.0/handlebars.min.js"></script>  
</head>

.
.
.

            <div id="results">

                <script type="text/x-handlebars-template" id="fetch-results">
                 <ul>
                        {{#each articles}}
                            <div class="row">{{title}}</div>
                        {{/each}}
                </ul>
                </script>
            </div>

以及 index.hbs

中的以下内容
[
           {
                "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"
            }
]

我现在已经尝试了几个小时来打印“文章”的内容。具有以下结构的对象:

         <script type="text/x-handlebars-template" id="fetch-results">
                <ul>
                    {{#each this}}
                        <div class="row">{{@key}}</div>
                    {{/each}}
                </ul>
            </script>

我已经尝试了所有可能的方法来打印它 - {{#with articles}},{{#articles}}等等 - 但它不会做任何事情。我已经通过main.js中的console.log语句确认了&#39;数据&#39;对象 - 在将文章交给.hbs之前分配给文章 - 包含所有信息。

有趣的是,这样做:

settings
pageTitle
pageHeading
path
contents
_locals
cache

显示以下内容:

{{1}}

我只能猜测是来自另一个&#39;这个&#39;上下文,可能在浏览器中。

非常感谢任何帮助!

谢谢!

1 个答案:

答案 0 :(得分:0)

我认为问题在于行$results.html(dataTemplate({ articles: data }));,因为代码在数组硬编码时工作正常。

请查看此示例PEN

希望这有帮助