【发布时间】:2015-04-21 17:13:27
【问题描述】:
我正在尝试在 html 页面中访问我在 Minimongo 中的 Products 集合。当我在浏览器控制台中时,我可以输入Products.findOne();,它会返回一个产品。
但是,当我尝试从模板帮助程序返回产品时,我得到了未定义的结果。有人想吗?
Template.Tires.onRendered(function() {
console.log(Products.findOne());
//after I return a product item, I need to modify its properties manually after it has loaded into the client
});
【问题讨论】:
-
听起来您在尝试访问客户端数据库 (
Products) 之前它从服务器接收到数据。当您在控制台中键入查询时,集合一直有时间接收它需要的任何内容,但如果您在准备好之前立即执行查询(例如在帮助程序中),那么您将不会得到任何回报。尝试发布您的路由器/模板代码(如果有),以便我们有一些上下文可以处理。 -
谢谢 - 我发布了我的模板代码。如果是这种情况,有没有办法可以延迟查询,直到数据加载完成?
-
除了少数例外,流星中不使用脚本标签。相反,请使用助手。我真的建议您在感到沮丧之前先学习基础知识meteor.com/learn
-
@MattK 是对的,您首先需要一些学习资源。因此,如果没有关于您想要实现的目标的更多上下文(简单地记录数据,在模板中使用它,...),将很难正确回答。至于您的问题,请关注:Subscriptions、Collections、what a reactive variable is、
Tracker和Templatehelpers。文档研磨! -
嗨 - 我已经阅读并且对流星基础知识有适当的理解。我正在以这种非正统的方式对此进行编码,以解决与具有我无法覆盖的内部订阅/发布功能的第 3 方包相关的问题。因此,我试图在数据到达 minimongo 的客户端后访问和操作数据......请参阅我更新的问题。任何帮助将不胜感激!
标签: javascript mongodb meteor minimongo