我在MongoDB集合“作者”中有一个嵌入式文档:
{"Name": "John Doe",
"Country": "U.S.A",
"Books": [
{"BName": "Book1", "Year": "1950"},
{"BName": "Book2", "Year": "1960"}
]
}
我想访问图书数据,循环浏览并在表格中显示每本图书。
这是我的JS文件的样子
Template.Author.helpers({
author: function() {
//_id of the Author is passed via the URL
return Author.find({"_id": FlowRouter.getParam('_id')})
}
});
这是我报告的HTML
<template name="Author">
<body>
<div class="row">
<div class="col-md-2">
Book Name
</div>
<div class="col-md-2">
Year
</div>
</div>
{{#each author}}
{{> bookdetails}}
{{/each}}
</body>
</template>
<template name="bookdetails">
<div class="row">
<div class="col-md-2">
{{Books.BName}}
</div>
<div class="col-md-2">
{{Books.Year}}
</div>
</div>
</template>
当我在嵌入式Books文档中只有一条记录时,这种方式有效,但是当我有多条记录时,这种方法就没有了 - 这是有道理的,因为'Books.BName'在那时是不明确的。
我需要遍历'Books'并输出每个BName和Year。 This答案是我发现的最接近的答案,但我收到错误: TypeError:_. value不是函数 这可能是因为我有一个嵌入式文档而不是数组。
答案 0 :(得分:0)
您的命名令人困惑。您已获得Book
个帮助,可以返回作者,以及您传递给bookdetails
模板的内容。您应该将帮助程序重命名为author
以减少混淆。然后,您可以使用{{#each author.Books}}
遍历实际的图书数组。
此外,在bookdetails
模板中直接访问图书参数,例如{{BName}}
代替{{Books.BName}}
。