2017-09-14 108 views
1

我在我的Meteor角度項目中使用了[email protected]包。每當我刷新流星角度的頁面時,Meteor.user()方法返回undefined

Meteor.user()方法返回當前用戶的詳細信息,但當我刷新頁面時,它返回undefined。 那麼有什麼辦法可以消除這個錯誤?任何幫助將不勝感激。

Meteor.autorun(function() { 
    vm.loggedInUser = Meteor.user(); 
}); 

它的正常工作,但是當我重新加載頁面返回undefined

Meteor.autorun(function() { 
    vm.loggedInUser = Meteor.user(); 
    console.log("loggedInUser", vm.loggedInUser); // undefined 
}); 
+0

你提的問題是過於寬泛。您應該添加更多信息和/或代碼,以便我們能夠理解您的問題。 – Styx

+0

我用更多的信息改進了我的問題。它可能會幫助你 –

+0

你的意思是'Tracker.autorun',對吧? – Styx

回答

3

當您刷新頁面,直到它的數據從服務器通過被重發到客戶端Meteor.user()是不確定的幾個週期的WebSocket/DDP。它最終會被定義並擁有正確的數據。像Meteor這樣的單頁面應用程序通常不需要刷新頁面,但必須處理用戶手動刷新的情況。一個典型的解決方案是在訂閱和用戶數據準備就緒之前顯示加載微調器。

而且它Tracker.autorun()Meteor.autorun()

+0

它從一個路由切換到另一個時從服務器檢索數據。 –

+0

你如何切換路線?您是否點擊了應用中的鏈接?或者在瀏覽器中輸入新的網址?在前一種情況下,'Meteor.user()'應該保持可用,而在第二種情況下,它與進行實際頁面刷新相同。 –