2015-05-04 152 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