2015-05-04 92 views
3

新流星。我正试图显示来自mongoDB集合的数据,并且想要迭代它来执行一些计算。流星渲染和mongodb集合

随着波纹管提到:

Employee = new Mongo.Collection("data"); 

Template.welcome.rendered = function() { 
    var employee = Employee.find({}); 
    employee.forEach(function(emp){ console.log(emp.id); }); 
} 

,但我得到一个空数组。如何处理这种情况?

(我可以把它放在“帮助和用户部分”,但我需要使用embedly执行一些jQuery的操作。但是,这jQuery的不是这个辅助功能的工作。)

+0

你或许应该等待你的订阅,欢迎渲染模板之前完成。在呈现时,Employee Collection中可能没有数据 – Sindis

+0

感谢您的回复。 但收集有数据。 但find()不适用于渲染。 – Robin

+0

因此运行Empoyee.find()。fetch()返回呈现函数中的数据? – Sindis

回答

0

首先,你应该知道,当你声明Mongo集合最好在构造函数中使用同一个名称“employee”。你

同时也应该注意到,在与MeteorJS的最新版本,你应该使用Template.name.onRendered()代替呈现该协会致力于向后兼容性,但将被​​弃用。

还有一件事。不要忘了ID前下划线是这样的:_id

试试这个代码,看看它的工作原理:

Employee = new Mongo.Collection("employee"); 

Template.welcome.onRendered(function() { 
    var employee = Employee.find({}); 
    employee.forEach(function(emp){ console.log(emp._id); }); 
} 
+0

感谢您的快速响应。 但该解决方案不适用于数据库提取。 正如你所提到的,“onRendered()”已被弃用。 是否有任何其他方式在流星从数据库获取数据,也执行JQuery操作? – Robin

+0

你是什么意思,它不是与数据库获取?你确定你把收藏发布给客户吗? – OvidMe

+0

It working ... Thanks! – Robin