Meteor 确定集合是否已准备就绪且文档是否存在
假设我有一个显示mongodb集合记录的页面:Meteor 确定集合是否已准备就绪且文档是否存在,meteor,Meteor,假设我有一个显示mongodb集合记录的页面: var item = Items.findOne({name: documentName}); Session.set('item', item); 当集合准备就绪并找到结果时,这将使用该项更新我的模板。现在我可以假设,当Session.get('item')未定义时,数据正在加载,并向用户显示加载图形或消息。但是,如果文档不存在,我不想无限期地向用户显示加载消息,我宁愿显示“未找到”消息。如果记录根本不存在,我如何确定并通知用户 我想: 将it
var item = Items.findOne({name: documentName});
Session.set('item', item);
当集合准备就绪并找到结果时,这将使用该项更新我的模板。现在我可以假设,当Session.get('item')未定义时,数据正在加载,并向用户显示加载图形或消息。但是,如果文档不存在,我不想无限期地向用户显示加载消息,我宁愿显示“未找到”消息。如果记录根本不存在,我如何确定并通知用户
我想:
我觉得我错过了一些就在我面前的把戏!有人有什么想法吗?您的解决方案应该适用于显示“正在加载”消息 要显示“未找到”消息,请在模板帮助器中检查查询结果的类型。当集合中没有记录时,结果将是未定义的
Template.items.item = function(){
var item = Items.findOne({name: documentName});
if(typeof item == 'undefined'){
return null;
}
else{
return item;
}
}
在html代码中,使用{{{if}}..{{else}}..{{{/if}}
块帮助程序,如下所示:
{{#if item}}
<!-- Display your template data here -->
{{else}}
<!-- The template helper returned null, so display message here -->
<span>NOT FOUND</span>
{{/if}}
{{#if item}
{{else}
找不到
{{/if}
希望这有帮助。您的解决方案应该可以用于显示“正在加载”消息 要显示“未找到”消息,请在模板帮助器中检查查询结果的类型。当集合中没有记录时,结果将是未定义的
Template.items.item = function(){
var item = Items.findOne({name: documentName});
if(typeof item == 'undefined'){
return null;
}
else{
return item;
}
}
在html代码中,使用{{{if}}..{{else}}..{{{/if}}
块帮助程序,如下所示:
{{#if item}}
<!-- Display your template data here -->
{{else}}
<!-- The template helper returned null, so display message here -->
<span>NOT FOUND</span>
{{/if}}
{{#if item}
{{else}
找不到
{{/if}
希望这有帮助。在这里看到我的答案:谢谢,而且,这很好地解决了问题!在这里看到我的答案:谢谢,而且,这很好地完成了任务!除非我误解了您的建议,否则这仍然会导致用户无限期地看到加载消息,因为当集合返回未定义时,已加载会话变量已设置。。。如果文档不存在,它总是会这样。我误解了您的建议。这仍然会导致用户无限期地看到加载消息,因为当集合返回未定义时,已加载的会话变量已设置。。。如果文档不存在,它总是会这样做