我的 html 代码:
<template name="homeItem">
<li class= "{{selectedClass}}">{{{content}}}</li>
<li class= "tagsBody">{{#each tags}}<a href="/tagsTemp/{{this}}">{{tags}}</a> {{/each}}</li>
</template>
订阅“内容”是在路由 Controller 级别完成的。
现在“tags”是一个数组,它是“content”的一部分,“content”是名为“contentsList”的集合中的文档。
我使用了一个 homeitem 辅助函数,它是这样的:
JS客户端代码
Template.homeItem.helpers({
'tags':function(){
return contentsList.findOne({_id: this._id}).tags
}
});
返回的错误是:
1) 模板助手中的异常:类型错误:无法读取未定义的属性“标签”。
2) Uncaught Error :{{#each}} 目前只接受数组、游标或假值。
3) Tracker 重新计算函数异常:TypeError: Cannot read property '0' of null
我怎么解决这个问题?我是编程新手。所以,请原谅我偏离了任何编程惯例。任何帮助将不胜感激。
最佳答案
contentList.findOne({_id: this._id})
返回 null,因此当您尝试执行 null.tags
时,它显示为未定义。
确保存在对 contentsList 的订阅并且您可以搜索它。通过运行 contentList.find().fetch()
来测试它以查看返回的内容。如果什么都没有返回,则您的订阅不存在。
关于javascript - 我无法使用 meteor 中的每个函数返回文档数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35155449/