2015-01-20 69 views
0

我正在創建一個網站,允許用戶對他們喜歡的事情進行投票,以影響其在列表中的順序(如reddit)。無限循環更新forEach內的流星集合

當我使用forEach遍歷我的集合,然後嘗試根據排序結果的索引更新每個條目時,它只會以無限循環結束,並且我的應用程序崩潰!

任何幫助都會很棒,代碼如下。

MyList.find({}, sort: votes: -1).forEach (item, index) -> 

    MyList.update item._id, $set: rank: index 

謝謝!

+0

哪裏該代碼運行?這是一個瘋狂的猜測,但似乎你在反應式計算刀片的錯誤端。 – 2015-01-20 18:55:42

+0

此代碼在我的所有集合都準備好後運行在客戶端上。 @Kyll – Ashmore11 2015-01-20 19:02:03

回答

0

要停止導致重新運行一些代碼,使用Tracker.nonreactivehttp://docs.meteor.com/#/full/tracker_nonreactive

像這樣:

Tracker.nonreactive -> 
    MyList.find({}, sort: votes: -1).forEach (item, index) -> 
    MyList.update item._id, $set: rank: index 
+0

感謝您的回答。最初沒有工作,但當我將Tracker.nonreactive函數移到MyList.find()函數上方時,它完美地工作。謝謝! – Ashmore11 2015-01-20 21:13:56

+0

剛剛更新了答案。涼! – stubailo 2015-01-20 21:25:51