如何将json嵌套数组渲染到手柄视图

时间:2018-02-24 11:49:41

标签: javascript arrays json mongodb javascript-objects

我在MongoDB中有一系列文档,如下所示:

    {
    "_id" : ObjectId("5a8706973e4306202c424122"),
    "title" : "how to make a robot?",
    "description" : "arif",
    "createdBy" : ObjectId("5a71a0ebc252020d4c127911"),
    "allLearningGoals" : "my third learning goals, my fourth learning goals",
    "resources_upload" : "{\"data\":[]}",
    "participants" : "[{\"email\":\"sur@gmail.com\"},{\"email\":\"arif@pbl.de\"},{\"email\":\"mac@gmail.com\"}]",
    "createdAt" : ISODate("2018-02-24T10:15:42.548Z"),
    "__v" : 0
}

我想在表格中显示每个参与者,并使用它们向所有通知发送电子邮件。 数据即将使用mongo findById,我可以在控制台中看到它:

console.log(data.project); // this is allright

所以在车把里我可以看到其他数据:

    {{#if data.project}}
{{ data.project.title }}
{{ data.project.description}}

但是对于参与者,如果我使用这个,我将整个数组视为:

{{ data.project.participants}} 

它显示:

[{\"email\":\"sur@gmail.com\"},{\"email\":\"arif@pbl.de\"},{\"email\":\"mac@gmail.com\"}]

我怎么能这样显示:

email: sur@gmail.com 

我试过了:

    {{#if data.project}}
<!-- added student list-->
<div class="form-group">
    <div class="form-row">
        <div class="col-md-12">
            <table class="table table-bordered">
                <thead>
                <tr>
                    <th scope="col">Name</th>
                    <th scope="col">Email</th>
                </tr>
                </thead>
                <tbody>
                {{#each participants}}
                    <tr>
                        <td>
                            {{ this }}
                        </td>
                        <td>
                            test
                        </td>
                    </tr>
                {{/each}}
                </tbody>
            </table>
        </div>
    </div>
    <!-- added student list end -->
</div>
{{/if}}

不工作......请给出一些好主意。 感谢

1 个答案:

答案 0 :(得分:1)

试试这个,我猜你试图以错误的方式访问你的数据

<tbody>
    {{#each data.project.participants }}
     <tr>
         <td>
             <!-- -->
         </td>
         <td>
             {{ this }}
         </td>
     </tr>
   {{/each}}
</tbody>

看看句柄栏迭代部分:https://handlebarsjs.com/builtin_helpers.html#iteration