2016-06-28 55 views
1

當我設置使用獲取會話變量在meteorjs值

Session.set('location',position); 

其設置後,當我嘗試

Session.get('location') 

通過控制檯,我得到一個空對象

我會話變量甚至已添加會話使用

meteor add session 
meteor add constellation:session 

但它仍然設置

我已經用它喜歡它的價值即使它不給任何值:successCallbk方法內收到

Meteor.startup(function() { 
    navigator.geolocation.getCurrentPosition(successCallbk); 
}); 

successCallbk = function(position) { 
    Session.set('location',position); 
}; 

位置PARAM,具有有效的值,但不保留在位置會話中var

+0

是位置有效值嗎? (未定義) – Seraph

+0

雅,我已經編輯它的確切用法。它有一個有效值,不是未定義的。 –

+0

我有同樣的確切問題。來自YouTube上的教程。 – Josh

回答

0

會話在客戶端提供了一個全局對象,您可以使用它來存儲任意組的鍵值對。用它來存儲當前選中的項目在列表中。

你應該嘗試驗證,如果你是在客戶端:

if (Meteor.isClient) { 
    Meteor.startup(function() { 
    navigator.geolocation.getCurrentPosition(successCallbk); 
    }); 
    successCallbk = function(position) { 
    Session.set('location',position); 
    }; 
}; 
+0

已經這個js文件在客戶端文件夾中,即使我驗證它的客戶端和執行這些,它仍然不工作:( –

1

首先嚐試硬編碼。

Session.set( 'testSession', '這是一個測試')

設置的Session.Get您的模板。

看看你是否可以讓它顯示在模板中。進入瀏覽器控制檯並將會話設置爲其他內容並查看它是否有效。

如果這可行,你可能需要給我們更多的代碼來查看。

0

我知道它很長一段時間,因爲你張貼了這個問題,但我決定,因爲我是用約什的視頻與流星的引用,我會發布我的解決方案:

success = function(position) { 
    Session.set('location', { 
     'coords': { 
      'accuracy': position.coords.accuracy, 
      'latitude': position.coords.latitude, 
      'longitude': position.coords.longitude 
     }, 
     'timestamp': position.timestamp 
    }); 
} 

基本上,我剛纔複製的對象對於位置對象來說很重要。它現在按預期工作。 僅供參考: https://www.youtube.com/watch?v=7iqdkVwtuvg