在blaze模板中显示光标数据不适用于Meteor.call()
ı有一个非常简单的模板,如下所示在blaze模板中显示光标数据不适用于Meteor.call(),meteor,meteor-blaze,Meteor,Meteor Blaze,ı有一个非常简单的模板,如下所示 <template name="editingUsers"> <div class="container"> <div class="jumbotron"> <ul class="custom-list-stye"> {{#each lastEditors}} <li><span
<template name="editingUsers">
<div class="container">
<div class="jumbotron">
<ul class="custom-list-stye">
{{#each lastEditors}}
<li><span><strong>{{docUser.name}}</strong></span> </li>
{{/each}}
</ul>
</div>
</div>
</template>
“GetLastEditor”方法通过MongoDB查询返回数据
getLastEditors: function () {
if(Meteor.user()) {
const lastEditors = Documents.find(
{docUser: {$exists: true }},
{
limit:5,
sort: { lastEdit: -1 },
});
return lastEditors;
}
}
使用此代码时,不显示应显示为列表的数据。但是,如果我直接从帮助器进行Mongo DB查询,一切都会正常。以下是工作助手代码。(未删除自动发布包)
正如您所知,ı无法继续使用autopublish包,我必须实现Meteor.methods()。我不明白为什么模板中没有显示Meteor.method返回的光标数据。我可以听听你的意见吗?替换
自动发布
包的正确方法是实现模式(这是自动发布
在引擎盖下所做的),而不是使用Meteor方法
您的最后一个代码示例(您可以直接在客户机模板帮助器中搜索文档
集合)非常好。您只需在服务器上设置至少包含这些文档的发布(如有必要,您可以发布更多),然后订阅,通常在创建模板时订阅
作为短期解决方法,您可以使用中间ReactiveVar
在模板帮助器中显示光标
看
此外,在您的客户端上,您必须使用带有回调的Meteor.call
。它不返回任何内容
请参见谢谢@ghybs的评论!感谢您的反馈!如果答案确实解决了你的问题或提供了重大帮助,那么感谢他人的方式也是接受答案。
getLastEditors: function () {
if(Meteor.user()) {
const lastEditors = Documents.find(
{docUser: {$exists: true }},
{
limit:5,
sort: { lastEdit: -1 },
});
return lastEditors;
}
}
Template.editingUsers.helpers({
lastEditors: function () {
return Documents.find(
{docUser: {$exists: true }},
{
limit:5,
sort: { lastEdit: -1 },
});
}
});